파이톤으로 기계 팔 각도를 자동으로 감지하여 영상에 추가합니다.(Tkinter가 사용하기 편한 이미지 처리 도구를 만듭니다.) ※Tkinter를 배울 수 있어요.

14605 단어 Python
https://github.com/sassa4771/Find_Arm_Angle_Tkinter
여기 서류내용설명↑

이 사이트에서 할 수 있는 일.


・ 에서 각도와 위치 좌표를 자동으로 감지하려는 팔 애니메이션을 애니메이션에 프레임을 표시합니다.

· 이 도구를 통해 Tkinter(파일 읽기, 애니메이션 편집, 마우스 추적, 슬라이더 제작 등)

이 Find Angle 도구를 만들기 전에 배운 기능을 강의로 활용하십시오.
lesson 1~27을 총결산했으니 참고해주세요.
Tkinter Lesson
<참조 사이트: https://www.youtube.com/watch?v=sAu7uxW85_Y&list=PL1FgJUcJJ03sm4WuVCPMbT0RIf2uMmoAj&index=17>

카탈로그


① Tkinter란?
② 필요한 프로그램 라이브러리, 액션 환경(※ 우선 돌려보고 싶은 사람은 여기서부터)
③ 도구 사용법 및 Tkinter 기능 소개
④ Tkinter 학습 방법(참고 스크립트 첨부)
⑤ 본 도구의 제작 방법(간이판)

① Tkinter란?


【Tkinter】
Tkinter는 "tekinter"또는 "tenk inter"로 불리며 Window, Mac, Linux라고 합니다.
기본 OS를 지원하는 플랫폼 간 GUI 라이브러리
(참조: https://www.acrovision.jp/service/data/?p=616
결론

GUI 할 수 있어!


② 필요한 라이브러리, 작업 환경


[작업 환경: (Let's Note)]
OS:windows10 Pro
CPU:Corei7
메모리: 12GB
[필요한 라이브러리]
・dlib
・opencv
・numby
・PIL(Pillow)
[Anaconda 환경 데이터]
이번에 사용한 Anaconda의 환경 데이터(yaml 파일)도 Giit에 있습니다. 사용하십시오.
https://github.com/sassa4771/Find_Angle_Tkinter/tree/main/Anaconda%20Environment
환경 설치 명령cd 【find_angle.yamlがあるとディレクトリ】
conda env create -n find_arm_angle -f find_angle.yaml
환경을 설치한 후main 파일run.bat을 시작하면 소프트웨어를 시작할 수 있습니다.

[촬영 환경]
• 배경은 검은색
/목표점은 흰색
필요했어(※ 이치화→윤곽 추출을 통해 좌표를 정하기 위해)

③ 도구 사용법 및 Tkinter 기능 소개


[1. 파일 열기]
일단 파일부터 열어봐.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[참조문건] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson23(Browsing%20A%20File).py

[2. 선택한 동영상 찾아보기]
no filter를 선택하고 "Show Selected Video"를 누르면 표시됩니다.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[무선 버튼] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson8(Radio%20Button).py
[버튼 및 기능 호출] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson4(Button%20And%20Button%20Commands).py

[3. 축소 영상]
다만 이렇게 되면 원래 영상이 너무 커서 크기를 조절해야 한다.
슬라이더를 사용하여 축척을 결정합니다.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[슬라이더] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson27(Slider).py

[4. 걸러낸 동영상 조회]
필터, 회색조, 이치화 처리가 없는 것을 선택할 수 있습니다.
※ 이치화 처리된 부분은 윤곽 추출을 통해 자동으로 추적되므로 배경은 검은색이며, 목표점은 흰색이어야 합니다.
필터에 대한 자세한 내용은 eyetrack에서 설명했습니다.
웹 카메라로 eye tracking(시선 추적)하는 [Windows 10]: https://github.com/sassa4771/eyetrack
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[버튼 및 기능 호출] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson4(Button%20And%20Button%20Commands).py

[5. 영상 편집의 범위]
자동으로 추적할 점 (흰색만 추적할 수 있습니다. 배경은 검은색이 좋습니다) 의 이동 범위를 잘라냅니다.
※ 본 처리는 목표점을 추종할 때 잡음이 들어오지 않도록 범위를 좁히기 위한 것입니다.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[이미지 자르기] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson25(Image_Triming).py

【6. 목표점을 추적할 수 있는지 확인】
자르기 범위 내에 애니메이션을 표시하려면 Check Cut Range 를 누릅니다.
"no filter"를 선택하면 대상 점이 빨간색 상자로 둘러싸여 있는지 확인할 수 있습니다.
다른 곳에서도 이 빨간 상자를 표시하면, 편집 범위를 수정해야 한다.그리고 애니메이션을 재촬영하고 촬영 환경을 재검토해야 한다.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[버튼 및 기능 호출] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson4(Button%20And%20Button%20Commands).py

[7. 자동 추적 실패 시 예]
당분간 가위질 범위를 넓혀 보세요.
이렇게 되면 프로그램에서 목표점이 어디에 있는지 판단할 수 없기 때문에 손에도 빨간색 테두리가 나타난다.
이런 상황을 피하기 위해서는 목표점의 자동 추적 범위를 좁혀야 한다.

[8. 회전 중심 확정]
그런 다음 회전 중심(Pivot)을 결정합니다.
Put Pivot On Image를 눌러 마우스를 드래그하여 빨간색 점을 조작합니다.
그 붉은 점을 회전 중심에 놓아라.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[버튼 및 기능 호출] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson4(Button%20And%20Button%20Commands).py
[마우스 추적] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson26(mouse_tracking).py

[9.각도 표시]
여기까지 하면 최후의 처리를 하도록 하죠.
처리된 비디오를 확인하려면'Make Frame Image'를 클릭하십시오.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[버튼 및 기능 호출] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson4(Button%20And%20Button%20Commands).py

[10. 제작된 영상을 저장한다.]
비디오를 저장하려면 Video Save를 선택하고 Check Cut Range를 누릅니다.
python 파일이 있는 위치에서 현재 날짜와 시간의 폴더를 만들고 저장합니다.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[버튼 및 기능 호출] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson4(Button%20And%20Button%20Commands).py
[검사 버튼] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson7(Check%20Button).py

[11. 제작된 영상을 프레임별로 저장한다.]
Frame Image Save를 선택하고 Check Cut Range를 눌러 비디오를 프레임별로 저장합니다.
python 파일이 있는 위치에서 현재 날짜와 시간의 폴더를 만들고 저장합니다.
이 Tkinter 기능은 이쪽 스크립트를 참고하세요.
[레이블] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson2(Labels).py
[버튼 및 기능 호출] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson4(Button%20And%20Button%20Commands).py
[검사 버튼] https://github.com/sassa4771/Find_Angle_Tkinter/blob/main/tk_lesson/tk_lesson7(Check%20Button).py

[12. 각도 정보는 수치로 획득]
비디오뿐 아니라 위치 좌표를 숫자로 얻으려면 명령 프롬프트에서 확인할 수 있습니다.

[13. 완성!]
이렇게 되면 거의 다 완성될 거야!

④ Tkinter 학습 방법(참고 스크립트 첨부)


이 도구가 사용하는 기능 등은lesson 1~27이 준비되어 있으니 확인하세요.
https://github.com/sassa4771/Find_Angle_Tkinter/tree/main/tk_lesson
기능이 하나하나 확인되고 있는데, 나는 오리지널 제작에 유용하다고 생각한다.

⑤ 본 도구의 제작 방법(간이판)


이 도구의 필터와 이미지 처리에 대해eyetrack에서 같은 필터를 설명합니다. 참고하십시오.
Github: https://github.com/sassa4771/eyetrack
Qiita: https://qiita.com/sassa4771/items/fbfb0012744350cf4d93
또한, Tkinter의 기능과 관련해서는 전장의 "④Tkinter 학습방법(참고스크립트 첨부)"을 참조할 수 있다.

좋은 웹페이지 즐겨찾기