728x90

사물인식 25

Unity에 Yolov3-tiny onnx 모델 적용 Unity에 Yolov3-tiny onnx 모델 적용 지난번 Darknet을 통한 yolo3-tiny 훈련을 진행했고 onnx로 컨버팅 진행에 대한 내용을 게시했었다. 다만 이전 게시물에서 잘못된 사항이 있어서 수정해 주었다.수정 부분은 다음과 같다.기존 내용input_names='input1', image_input_names='input1', output_names=['output2', 'output1'], image_scale=1/255.,수정 내용input_names='input1', image_input_names='input1', output_names=['output1', 'output2'], image_scale=1/255., output의 위치가 바뀌어야 했던 것이다.  컨버팅은 정상적이.. 개발 관련/SW, App 관련 2024. 10. 9.
Darknet을 통한 Yolov3-tiny 훈련 Darknet을 통한 Yolo v3 tiny훈련 지난번에 Darknet을 이용하여 Yolov2-tiny로 커스텀데이터셋을 결국에는 Unity에 인식하는데 어느 정도 성공을 해서 이번에는 Yolov3-tiny를 시도해 보았다. 참고적으로 Unity의 Barracuda는 Yolov3을 지원한다. 지원하는 Barracuda의 버전은 살펴봐야 하겠지만 상위버전이면 지원할 것이다. Barracuda 매뉴얼에 나와 있다. 다만, Yolov3-tiny는 확인이 필요하다.  따라서 이번에는 이전보다 성능? 좋은 Yolov3-tiny로 훈련하여 인식해 보기로 했다. 이게 더 좋으면 이걸 써야되지 않겠는가.. 기본적인 cfg 설정은 기존의 Yolov3-tiny를 알맞게 수정해 준다.특히 filters부분이 이전 버전과 다.. 개발 관련/SW, App 관련 2024. 10. 7.
Darknet 사물인식 진행 상황 Darknet 사물인식 진행 상황 지난번 커스텀데이터로 Darknet 훈련을 통해 가중치(.weights) 파일을 얻고 이 가중치를 통한 테스트는 정상적으로 잘되었었다. 문제는 이 가중치 파일을 다이렉트로 onnx 컨버팅이 되지 않아 다시 keras의 .h로 변환한 뒤 onnx로 변환했다. 그러나 변환한 keras로도 훈련이 되지 않았고 이를 변환한 onnx 파일을 Unity에서 적용하여 Android 앱으로 빌드하여 사물인식을 시도하였으나 그것도 제대로 된 Bounding Box 출력이 되지 않았다.  따라서 여기에서의 문제는 바로 keras의 .h로 변환하는데서 문제가 발생하는 것이라 확신했다.참고한 yad2k 의 이슈에서도 이 문제가 제기되었고 다른 방법으로 해결했다고 한 사항이 있으나 내게는 적용.. 개발 관련/SW, App 관련 2024. 9. 26.
Darknet의 weight로 사물인식 테스트 Darknet의 weight로 사물인식 테스트 커스텀 데이터셋을 Darknet로 yolov2-tiny로 훈련하여 나만의 weight파일을 얻고 이를 keras를 거쳐 onnx로 컨버팅이 성공적으로 잘되었다. 물론 최종적인 unity에서도 인식은 잘 되었다.그런데 문제가 제대로 된 인식이 되지 않는다. 인식률에 문제가 있긴 해도 아무거나 인식하게 되면 문제가 있는 게 아닌가... 그래서 다시 Darknet로 test를 아래와 같이 진행하였는데, 너무 잘된다..물론 인식률은 표본이 적어서 문제가 있기는 해도 인식은 되지 않는가... 그렇다면 컨버팅 과정이나 unity에서 인식하는 무엇인가가 잘 처리되지 못한다는 것인데... 현재 이것을 찾고 있는 중이다.   원래 8월까지로 마무리하려했는데 이 부분까지만 해.. 개발 관련/프로젝트 2024. 9. 11.
아두이노 로봇 제작 - 진행 현황 현재까지 진행된 상태는 지난번 초음파 센서 장착 이후 아두이노 코드와 이를 제어할 유니티의 코드를 수정하고 추가하는 작업을 진행했다.이에 따라 사물을 인식 및 추적하면 현재의 화면에서 위치를 잡을 수 있다. 그리고 일정 거리가 될 때까지 가까이 이동한다.그러면 최종적인 위치에 다가갈때까지 천천히 이동한 뒤 잡을 수 있는 거리가 되면 로봇암이 동작하게 된다.대충 아래의 동영상과 같다. 현재는 제자리에서 바퀴만 회전다록 했다. 이유는 아래에 있다. 위의 제자리 이동의 이유에는 몇가지 문제가 있다. 이것은 프로그램적인 것보다는 제품의 문제가 크다. 일단 DC모터가 계산대로 세밀하게 움직이지 못하는 점, 바퀴가 생각보다 쉽게 미끄러지는 점이 있다.물론 DC모터를 서서히 움직이는 가속코드를 넣어둔 것이 있긴 하지.. 개발 관련/프로젝트 2024. 8. 12.
로봇제작 - 제작 현황 지난번 MG995 서보모터 테스트 이후 교체를 진행하였다.역시나 HS-311과는 반대방향으로 움직였다. 물론 방향을 바꾸면 되긴 하지만 원래의 모양과는 달라서 현재대로의 모양을 유지하려면 결국 아두이노에서 각도를 수정해 줄 수밖에 없다. 이와 함께 좀더 짧은 프레임으로도 교체하였다. 혹시나 기존 프레임에 MG995를 결합하려고 했으나 서보혼이 맞지 않아 그냥 교체하였다. 교체 후 각도 테스트 진행 중에 난관에 부딪혔었다.특정 각도를 움직일때마다 엄청 떠는 것이었다. 아주 요동치듯 떨려서 도저히 쓸 수 없을 지경이었다.속도나 각도 등 여러 번 최소화 시도를 하였으나 그래도 떨림은 있었다. 그런데 문제는 생각보다 쉽게 해결되었다. 전압을 낮춰주었다. 대부분의 서보 전압은 보통 4.8v ~ 7.2v 사이를 지.. 개발 관련/프로젝트 2024. 6. 5.
로봇제작 - 로봇암 음성인식 제어 테스트 현재는 로봇암의 음성인식 테스트를 진행 중이다.뭐 빈캔 정도는 들어 올리는데 문제는 없겠다.간혹 튀는 점이 있긴 하는데... 원인은 잘 모르겠다. 시간 되면 고쳐봐야겠다. 아울러 몇 가지 버그를 수정 중이다. 그중 하나가 이동 중에 장애물 근처로 가면 IR센서 감지에 의해 멈추는데,, 음성인식으로는 더 이상 움직이질 않는다. 수동은 잘되는데...아마도 센서에 계속 감지가 되기 때문에 그런 것 같다. 이는 후진으로만 움직일 수 있도록 예외처리가 필요한 부분이다.이런 것에 대한 버그들을 고치고 있다.최종적으로는 사물인식과 합쳐서 스스로 물건을 찾아서 쓰레기 통에 넣는 기능을 구현하고자 한다.과연 잘 될지.. [영상의 음성은 느끼하다.] 어느 정도 수정을 하고 나면 MG995 서보모터로 교체를 먼저 진행한 뒤.. 개발 관련/프로젝트 2024. 5. 4.
Darknet train 진행 중 지난주 목요일부터 시작한 추론학습 훈련이 아직도 진행 중이다. 일 때문에 시간이 없어서 대충 필요한 것만 설정했다.그런데 훈련 시작시 뜨는 메시지를 확인해 보니,  - GPU isn't used- Not used AVX- Not used FMA & AVX2- OpenCV isn't used 이러면 오로지 펜티엄 골드의 성능으로 해야 된다는 건데... 하면서 이것저것 검색해 봤더니... 최소 1,000회 정도는 해야 된다고 한다.대략 4일 지난 현재 시점에서 555회 돌파중이니까.. 한 3~4일 더 있으면 최소한의 결과를 확인할 수 있는 데이터는 나오겠다.고작 50개 좀 넘는 이미지 가지고 이렇게 하는게 맞는지 궁금하다..... 그런데 더 큰 문제가 있다.설정파일에 기본 saveweights default.. 개발 관련/프로젝트 2024. 4. 29.
로봇제작 - 이미지 인식 지난번 이미지인식을 진행했었는데, 동영상을 아래와 같이 캡처하였다. 인식율이 높은 이미지 위주로 2가지 정도만 표시하였다. 동영상은 안드로이드 앱으로 빌드하여 테스트하였다. PC의 웹캠보다는 인식율이 떨어진다. 아무래도 시스템 사양을 타는 것 같다. 인식하는 주요 대상물을 집안의 캔이나 우유, 두유팩 등의 음료 위주로 학습을 시킨 다음 onnx로 컨버팅 하여 Unity에서 모델을 불러왔다. Teachable Machine로 이미지 학습 후 jupyter notebook로 onnx로 모델을 컨버팅 하였다. ◇ ONNX 컨버팅 정보는 다음과 같다. tensorflow = 2.8.0 onnx = 1.15.0 tf2onnx = 1.16.1/15c810 opset 9 ~ 12 ◇ Unity의 정보는 다음과 같다... 개발 관련/프로젝트 2024. 3. 11.
로봇제작 - 프레임 보완 진행중 지난번 프레임 설계에 따른 출력 미스로 인해 두 번째 프레임부터 맞지 않아 다시 설계하고 다시 출력해서 커팅을 진행하였다. 끝까지 잘 맞는지 확인했어야 했다. 그러면 시간이며 재료며 이런 걸 줄일 수 있었을 텐데.. 아무튼 아래와 같이 다시 커팅하였다. 이외에도 나머지 집게도 커팅을 진행하였다. 이제 모든 부품을 커팅했기 때문에 조립만 해주면 되는 사항이다. 일반 커터칼로 커팅해서인지 자를 때 약간씩 여유를 두고 했더니 살짝 맞지 않는 부분이 있어 조금 다듬었다. 서보의 오목한 부분도 좀 다듬고 해서 조립을 시작했다. 그런데 한 가지 낭패가 생겼다. 6mm 볼트가 부족하다. 5mm는 많은데... 이런.. 적어도 서보와 프레임 조립에서 최소한 6~8mm가 준비되어 있어야 하는데... 부족하다.. 사야 된다.. 개발 관련/프로젝트 2024. 3. 9.
728x90