728x90

darknet 16

Yolov3을 이용한 Unity 사물인식 제작 정리(4) Yolov3을 이용한 Unity 사물인식 제작 정리(4) 7. ONNX 컨버팅 이제 다음 단계는 onnx로 컨버팅 하는 사항이다. 최근에야 비로소 unity에서 인식 가능하도록 진행되었다. 아마도 상위 버전의 프로그램들을 사용했다면 더 빨리 진행되었을 것이다.우선 Darknet의 실행파일이 있는 폴더에서 backup 폴더로 가보면 가중치 결과 파일이 저장되어 있을 것이다. steps 값이 있어 여러 파일이 생성되어 있겠지만 실제적으로 사용할 파일은 yolov3-tiny_final.weights 가중치 파일이다. 일단 파일은 그대로 두고 아래의 git에서 keras-yolo3을 가져온다.즉, Darknet의 weights(가중치) 파일을 keras 모델로 변형(재훈련?)하는 것이다. 여기서 그 형식을 Co.. 개발 관련/SW, App 관련 2024. 11. 12.
Yolov3을 이용한 Unity 사물인식 제작 정리(3) Yolov3을 이용한 Unity 사물인식 제작 정리(3) 5. 커스텀 데이터셋 준비 보통의 Yolo를 쓰면 미리 훈련된 모델들을 가지고 많이들 사용한다. 다양한 훈련 모델들이 있어서 플랫폼에 맞춰서 적절하게 사용되고 있다. 하지만 본인이 여기서 다루고자 하는 것은 원하는 데이터를 기반으로 훈련하는 것이다. 이게 가장 큰 목적이다.로봇이 플라스틱 병이나 우유팩 같은 것을 인식하여 물건을 잡고 이를 분리수거함으로 운반하여 넣는 것이 최초의 목적으로 시작하게 되었다. 이는 지금도 진행 중이다. 훈련데이터에서 준비되어할 것은 다음과 같다. Darknet 실행파일이 있는 위치에 data 폴더가 있다. obj 폴더에 훈련할 이미지와 label 정보 텍스트가 들어가야 한다. 하나의 이미지당 하나의 label 정보 텍.. 개발 관련/SW, App 관련 2024. 11. 11.
Yolov3을 이용한 Unity 사물인식 제작 정리(2) Yolov3을 이용한 Unity 사물인식 제작 정리(2) 4. Darknet 및 Unity 설치우선 Unity부터 설치해 준다. 현재는 Unity6까지 해서 최신 버전들이 많겠지만 진행하고자 하는 사항은 Unity의 barracuda를 이용한 것이므로 낮은 버전을 다운로드하여야 한다.  다음의 Unity Archive에서 2018.4.xx를 다운 받는다. 다만, barracuda를 사용하는 것이기 때문에 더 상위버전인 unity 2019도 잘 될 것 같다. 혹시나 그다음 버전들이 Unity plugin package로 barracuda를 지원한다면 될 것도 같다. 하지만 확인을 못해봐서 현재는 알 수 없다. 다운로드 아카이브 다운로드 아카이브다운로드 아카이브unity.com 다운을 받게 되면 Unity .. 개발 관련/SW, App 관련 2024. 11. 10.
Yolov3-tiny 사물인식 결과 Yolov3-tiny 사물인식 결과 엊그제 표본을 최초 50개에서 310개로 약 6배 증가시킨 훈련 결과를 토대로 Unity에서 빌드하고 테스트를 진행했다.개발하는 플랫폼은 Android에서 Unity의 추론엔진 barracuda와 그래픽 API는 Vulkan을 이용하는 것이다. 결과적으로 높은 인식율을 보였다.그와 동시에 표본에 없던 대상까지도 인식을 하고 그 확률 또한 상당해서 만족스러운 결과로 나타났다.  다만 한가지 문제가 있는데 사물에 대한 거리이다. 동영상을 확인해 보면 가까운 거리나 조금 떨어진 거리는 인식률이 높게 나타난다. 하지만 그 거리에서 조금만 떨어져도 인식을 못하는 현상이 발생되었다.따라서 좀더 떨어진 것도 확보해서 잘 되는지 확인해 볼 필요가 있다. 역시나 이것도 손이 많이 간다.. 개발 관련/SW, App 관련 2024. 11. 1.
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.
keras의 HDF5(.h)로 변환시 utf-8 오류 해결방법 Darknet 훈련을 통한 가중치(.weights) 파일을 kera hdf5 포맷 변환시 아래와 같은 오류가 발생했다.model_config = json.loads(model_config.decode('utf-8')) 이는 패키지의 버전차이로 발생하는 것이며 간단하게 하위 버전으로 설치하면 해결된다. pip uninstall h5py pip install hypy==2.10.0 그러면 오류를 해결할 수 있다. 개발 관련/SW, App 관련 2024. 9. 5.
Yolov2, v3-tiny 훈련 다시... congfig에서 변경 안 한 것이 있어서 다시 훈련을 돌렸다.. 이번 다시 돌리는김에 yolov2-tiny 와 yolov3-tiny를 같이 돌림.. v3 훈련도중 다음과 같은 오류가 발생하여 사이즈를 낮춰서 재실행했더니 정상적으로 훈련이 되었다. 혹시나 v3이 안될 수 있기 때문에 2개를 돌린 것이다. cuDNN isn't found FWD algo for convolution. 해결책은 해상도를 낮춰서...  그리고 두 버전의 훈련과정은 좀 다른 것 같다.   물론 따로 돌려도 되는데 GPU 점유율을 생각보다 적게? 차지하는 것 같아서 동시에 돌렸다. 그래서 메모리 문제가 발생된 듯. 훈련시간은 서로 다른데 v3이 더 빨랐다. 전체 훈련 시간의 경우 v2는 약 7~8시간, v3은 6시간 가량 소요되었.. 개발 관련/프로젝트 2024. 8. 31.
728x90