728x90

개발 관련/SW, App 관련 109

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을 이용한 Unity 사물인식 제작 정리(1) Yolov3을 이용한 Unity 사물인식 제작 정리(1) 그동안에 Yolo를 이용하여 사물인식을 제작한 모든 과정을 기록으로 남기고자 한다. 분명 시간이 지나면 다 까먹을 것이다.물론 상위버전들도 있고 더 쉽게 구현이 가능할 수 있으나 주어진 환경과 프로그램 버전의 제약으로 Yolov3으로 진행하게 되었다. 진행은 최종적인 플랫폼인 Android OS의 App에서 작동할 것이므로 Yolov3-tiny 버전으로 할 것이지만 일부 수정 및 보완을 거치게 되면 Yolov2, Yolov2-tiny, Yolov3, Yolov3-tiny에서 호환되어 작동할 수 있다. 결과적으로 Unity의 환경의 App 제작에 따른다. 목차는 다음과 같다.1. 시스템 확인 및 필수 소프트웨어 설치2. 환경설정3. Python(An.. 개발 관련/SW, App 관련 2024. 11. 8.
Yolov3-tiny 사물인식 결과 Yolov3-tiny 사물인식 결과 엊그제 표본을 최초 50개에서 310개로 약 6배 증가시킨 훈련 결과를 토대로 Unity에서 빌드하고 테스트를 진행했다.개발하는 플랫폼은 Android에서 Unity의 추론엔진 barracuda와 그래픽 API는 Vulkan을 이용하는 것이다. 결과적으로 높은 인식율을 보였다.그와 동시에 표본에 없던 대상까지도 인식을 하고 그 확률 또한 상당해서 만족스러운 결과로 나타났다.  다만 한가지 문제가 있는데 사물에 대한 거리이다. 동영상을 확인해 보면 가까운 거리나 조금 떨어진 거리는 인식률이 높게 나타난다. 하지만 그 거리에서 조금만 떨어져도 인식을 못하는 현상이 발생되었다.따라서 좀더 떨어진 것도 확보해서 잘 되는지 확인해 볼 필요가 있다. 역시나 이것도 손이 많이 간다.. 개발 관련/SW, App 관련 2024. 11. 1.
Unity 로우 폴리곤 행성 추가 제작 Unity 로우 폴리곤 행성 추가 제작 지난번 얼음행성 다음으로 지구형 행성을 추가적으로 만들어 봤다. 처음 만든 것이 너무 대충 만들어서 모델링부터 좀 더 신경 써서 만들었다.  그리고 물고기 만들었던 것도 적절히 배치하였고, 추가적으로 새도 만들어서 적절히 배치하였다. 이와 함께 비주얼적인 것도 좀더 손보았다. 바다의 shader를 좀 더 보완했고, 육지도 좀 변경해 주었다.  대표적으로 변경한 것이 사막인데 사막에는 나무가 거의 자라지 않으니까 나무를 배치하는 방법을 이미지의 픽셀값을 읽는 것으로 변경했다.그전에는 좌표의 범위로 설정했는데 그렇게 되면 추후 조정시 복잡해질 것 같아서 편하게 아래와 같은 이미지로 조정했다. 검은색은 나무가 자라지 않는 지역이고 붉은색은 잎이 없는 나무의 위치이다.그래.. 개발 관련/SW, App 관련 2024. 10. 31.
Yolov3-tiny 사물인식 추가 진행상황 Yolov3-tiny 사물인식 상황 이번달 초까지 Yolov3-tiny를 기존의 데이터셋을 통해 훈련을 진행했었고, 그 결과를 coreml 모델을 통해 onnx로 컨버팅 하여 최종적으로 Unity의 barracuda로 인식을 성공시켰다.Darknet을 통한 Yolov3-tiny 훈련 Darknet을 통한 Yolov3-tiny 훈련Darknet을 통한 Yolo v3 tiny훈련 지난번에 Darknet을 이용하여 Yolov2-tiny로 커스텀데이터셋을 결국에는 Unity에 인식하는데 어느 정도 성공을 해서 이번에는 Yolov3-tiny를 시도해 보았다. 참고적으로 Unitytipon.tistory.com 다만 문제로 생각되었던 것이 인식율이 너무 형편없었다. 인식율을 보면 30% ~ 90%로 범위가 너무나 .. 개발 관련/SW, App 관련 2024. 10. 30.
Unity 로우 폴리곤 얼음 행성 추가 Unity 로우 폴리곤 얼음 행성 추가 지난번 파괴되어 핵이 보이는 로우폴리곤 행성을 만들었었다. 이번에는 그와 반대되는 얼음행성을 테스트 겸 만들어 보았다. 물론 행성의 종류들은 많다. 그런 것들도 시간 되면 만들어볼 예정이다. 만드는 형식은 모두 비슷하다. 3D 모델에 적용되는 Material과 Shader만 변경하면 쉽게 만들 수 있다.그런 로우 폴리곤 행성의 코드는 다 비슷비슷해서 크게 바꿀 것이 없다. 우려되는 것은 안드로이드 플랫폼에서 느리지 않게 잘 돌아갈 정도의 퀄리티를 유지하는게 쉽지 않을 것 같다. 이전에 올린 행성들을 구동하는 안드로이드 폰은 갤럭시S9 정도의 기기로 돌아간다. 개발 관련/SW, App 관련 2024. 10. 17.
Unity PostProcess Bloom 효과 코드제어 Unity PostProcess Bloom 효과 코드제어하기 지난번 로우폴리곤 행성을 만들다가 여러 행성의 환경 특성을 표현하는 효과를 주고자 Unity의 Post Process를 사용하는데 의외로 코드로 제어하는 정보를 찾기가 어려웠다.분명히 이것을 사용하는 사람들이 있을 텐데 말이다. 적어도 Unity 2018.4.x에서 다른 방법을 모르겠다. 따라서 좀 다른 코드를 찾았었는데.. 이를 쉽게 응용해서 최대한 간략하게 구성해 봤다. 생각보다 너무 간단하다.. 아래와 같이 응용하면 아주 쉽게 조절할 수 있다. Bloom 외에도 Unity에서 제공하는 다른 PostProcess들을 응용할 수 있을 것 같다.using UnityEngine;using UnityEngine.Rendering.PostProces.. 개발 관련/SW, App 관련 2024. 10. 16.
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.
728x90