Vision에서 Hand Pose Detection 손 추적
iOS14에서 손 포인트를 인식할 수 있습니다.
위의 그림은 Apple의 샘플 프로젝트입니다.
이 기사에서는 이미지에서 손 포인트를 취하는 절차를 소개합니다.
절차
요청을 실행하기 전까지는 항상 Vision과 동일합니다.
1.Vision을 가져오기.
import Vision
2. 요청을 만듭니다.
var handPoseRequest = VNDetectHumanHandPoseRequest()
handPoseRequest.maximumHandCount = 1 // 検出するての数
3.ImageRequestHandler에서 실행.
AVFoundation의 CaptureOutput 메서드 등으로 프레임의 PixelBuffer를 맞춥니다.
let handler = VNImageRequestHandler(cvPixelBuffer:pixelBuffer, orientation: .up, options: [:])
do {
try handler.perform([handPoseRequest!])
guard let observation = handPoseRequest?.results?.first as? VNHumanHandPoseObservation else { return }
// maximumHandCountで設定した手の数だけObservationを取得できます。
} catch let error {
print(error)
}
4.손가락의 각 포인트에의 액세스
예를 들어, 집게 손가락 끝의 포인트에 대한 액세스는 다음과 같습니다.
let indexFingerTip = try observation.recognizedPoints(.all)[.indexTip]
print(indexFingerTip)
Optional([0.984453; 0.562278])
포인트는 주어진 이미지의 방향 등에 따라 원점이 변화하므로 X축 Y축을 확인합시다.
획득할 수 있는 포인트 목록
5개의 손가락 각각의 앞의, 제1 관절, 제2 관절, 부근과, 손목의 21 포인트를 취득할 수 있습니다.
손가락
앞
첫 번째 관절
두 번째 관절
뿌리
엄지손가락
.thumbTIP
.thumbIP
.thumbMP
.thumbCMC
집게 손가락
.indexTip
.indexDIP
.indexPIP
.indexMCP
가운데 손가락
.middleTip
.middleDIP
.middlePIP
.middleMCP
약지
.ringTip
.ringDIP
.ringPIP
.ringMCP
새끼손가락
.littleTip
.littleDIP
.littlePIP
.littleMCP
손목은 .wrist
🐣
프리랜서 엔지니어입니다.
일 상담 여기까지
로쿠키 시코쿠 @ g 마이 l. 이 m
Core ML을 사용하여 앱을 만들고 있습니다.
기계 학습 관련 정보를 발신하고 있습니다.
트위터
Medium
Reference
이 문제에 관하여(Vision에서 Hand Pose Detection 손 추적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/john-rocky/items/29c2cf791051c7205302
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import Vision
var handPoseRequest = VNDetectHumanHandPoseRequest()
handPoseRequest.maximumHandCount = 1 // 検出するての数
let handler = VNImageRequestHandler(cvPixelBuffer:pixelBuffer, orientation: .up, options: [:])
do {
try handler.perform([handPoseRequest!])
guard let observation = handPoseRequest?.results?.first as? VNHumanHandPoseObservation else { return }
// maximumHandCountで設定した手の数だけObservationを取得できます。
} catch let error {
print(error)
}
let indexFingerTip = try observation.recognizedPoints(.all)[.indexTip]
print(indexFingerTip)
5개의 손가락 각각의 앞의, 제1 관절, 제2 관절, 부근과, 손목의 21 포인트를 취득할 수 있습니다.
손가락
앞
첫 번째 관절
두 번째 관절
뿌리
엄지손가락
.thumbTIP
.thumbIP
.thumbMP
.thumbCMC
집게 손가락
.indexTip
.indexDIP
.indexPIP
.indexMCP
가운데 손가락
.middleTip
.middleDIP
.middlePIP
.middleMCP
약지
.ringTip
.ringDIP
.ringPIP
.ringMCP
새끼손가락
.littleTip
.littleDIP
.littlePIP
.littleMCP
손목은 .wrist
🐣
프리랜서 엔지니어입니다.
일 상담 여기까지
로쿠키 시코쿠 @ g 마이 l. 이 m
Core ML을 사용하여 앱을 만들고 있습니다.
기계 학습 관련 정보를 발신하고 있습니다.
트위터
Medium
Reference
이 문제에 관하여(Vision에서 Hand Pose Detection 손 추적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/john-rocky/items/29c2cf791051c7205302텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)