목록분류 전체보기 (130)
박민혀기

Instruction그동안 일과 논문 작성이 겹치면서 포스팅을 미루고 미루다 이제서야 한적해진 수요일 오전에 포스팅을 해본다.. (사실 한건 산더미이지만 OS 포팅을 기다리면서 이해했던 것도 정리할 겸 쓴다.)실제로 YOLO 훈련 관련한 공부는 24년도 하반기부터 본격적으로 시작했지만 시스템 환경 문제, 각종 패키지 버전 문제, 코드 문제 등이 겹치면서 습득하는 데까지 오래 걸렸다. 머리가 안 좋아 삽질을 많이 한 케이스 같다.사실 내가 사용한 소스코드는 Google Colab에서 사용하면 바로 동작이 가능한 코드이다. 하지만 PC로(RTX3080, i9-12900) 학습하면 학습 속도가 더 빠르다는 얘기를 듣고 시작하게 되었다.Darknet Struct & NVIDIA Library 우선 지금까지 했던..

보통 납품을 하게 되면 부팅 완료 후 프로그램 자동을 실행되게 해야 된다. (임베디드 시스템처럼)사실 2년도 전에 같은 목적의 포스팅을 업로드한 적이 있었다. 내 첫 일감이었던 비전 검사기에 적용됐던 방법이다.그 방법이 올해 초부터 삐걱거리더니 이제는 아예 안 된다...(RPi CM4, RPi 4 Model B에서 확인)https://forthe-future.tistory.com/10 autostart로 변경 후 정상 작동(아래 포스팅)GUI가 필요한 프로그램의 경우 X 서버가 시작된 후에 실행되어야 하므로 autostart 방법이 적합$ sudo nano /etc/xdg/lx" data-og-host="forthe-future.tistory.com" data-og-source-url="https://f..

OpenCV Lite 버전 설치를 포스팅하려한다.기본 구조는 https://forthe-future.tistory.com/2 와 거의 비슷하기 때문에 자세한 내용은 이전에 작성한 설치 가이드를 확인하면 된다.일반 OpenCV와 OpenCV Lite의 차이는 3D 보정이나 스티칭, 딥러닝 같은 기능의 차이이다.현재 내가 사용하고 있는 OpenCV의 기능으로는 순수 알고리즘? 만 사용하기 때문에 무겁고, 용량이 큰 OpenCV를 사용할 필요가 없다. 특히 임베디드 시스템에선 더욱이 말이다. 또한 imshow와 같은 GUI 함수 사용에 있어 필요한 라이브러리 들이 있는데(ex. GTK, Qt5) 이때도 많은 메모리가 필요하다. 아무튼 이번 포스팅에서는 OpenCV 설치를 해봤다는 가정하에 간단하게 명령어만 나..

현재 진행하고 있는 VisionKart에서 마지막 부분인 통신 프로토콜 부분을 진행하고 있다.RS232에서 uart 통신으로 변경되어 개발에 있어 더 수월해진 것 같다. 메인 컨트롤 보드에는 STM32(메인 MCU) + 모터 드라이버 + 각종 통신 모듈/포트 + CM4(RaspberryPi4)가 한 기판 위에 올라가서 통신을 주고 받는다. 나는 당연하게도 uart0(TXD0, RXD0) 포트를 사용하려고 회로 설계와 디자인을 모두 살펴보면서 확인하였다. 하지만 설계와 실제 디자인이 다른 것 같아 보드 설계자한테 물어보니 uart0 포트가 stm32와 끊어져 있는 것 같다는 얘기를 받았다. (아무리 봐도 이상해서 한 시간은 계속 확인해 본 것 같다.)그에 따라 자연스럽게 다음 포트인 uart3(TXD3..

지난 포스팅에서는 Split Learning의 개념을 간단하게 살펴보았다.https://forthe-future.tistory.com/132 Split Learning with YOLOv3 (1)이번 포스팅에서는 현재 연구 중인 Split Learning 관련하여 정리해 보려 한다.본격적으로 포스팅하기 전에 배경 지식인 Split Learning, YOLO 등에 대해 간단하게 설명할 예정이다. Split Learning이란?Splitforthe-future.tistory.com 이번 주제는 PyTorch과 Darknet을 활용하여 YOLOv3를 구현하는 것을 알아볼 것이다.YOLOv3의 백본인 Darknet은 객체 탐지 알고리즘을 구현하고 실행하기 위한 오픈 소스 신경망 프레임워크이다.YOLO를 개발한 ..

이번 포스팅에서는 현재 연구 중인 Split Learning 관련하여 정리해 보려 한다.본격적으로 포스팅하기 전에 배경 지식인 Split Learning, YOLO 등에 대해 간단하게 설명할 예정이다. Split Learning이란?Split Learning이란 데이터 프라이버시를 보호하면서 분산 협업 학습을 가능하게 하는 방법이다.Split Learning은 크게 두 단계로 나눌 수 있고 각 단계의 특징은 다음과 같다.학습 단계(Training Phase)모델 파라미터를 학습하고 최적화하는 과정클라이언트와 서버 간에 데이터와 그래디언트를 주고받으며 반복적으로 모델을 개선데이터 프라이버시를 유지하면서 협력적으로 모델을 훈련추론 단계(Inference Phase)학습된 모델을 사용하여 새로운 데이터에 대한..

라즈베리파이 환경에서 객체감지 YOLO를 사용하기 위해 필요한 패키지나 백본을 설치해야 한다.아마 리눅스 환경에서도 비슷하게 동작할 것으로 예상되는데, 윈도우에서 사용하려면 백본(Darknet) build나 CUDA, OpenCV, cudnn등 다양한 부분에서 비교적 설치가 까다롭다. 2024-09-10 업데이트 : 리눅스 윈도우 환경 두 환경 모두 정상 동작함 우선 있는 장비로 빠르게 사용하기 위해 라즈베리 파이 5를 가지고 설치했다. Darknet 설치기본적인 OS 업데이트와 필요한 패키지, 라이브러리를 설치해야 한다.#OS Updatesudo apt-get update#Darknet을 컴파일하기 위해 필요한 의존성 설치sudo apt-get install build-essential libopenc..

이번에는 이전 실험과 해상도만 다르게 해서 실험해보았다. 코드와 모델은 이전과 동일하게 진행하였다.https://forthe-future.tistory.com/128 SAM2(Segmentation Anything Model) by Meta on RPi52024년 07월 Meta에서 객체인식 모델인 SAM2를 출시하였다.기존 SAM과 가장 큰 차이점은 비디오 객체 인식이 효율적으로 가능하다는 것이다. 기존 SAM을 들어본 적도 사용해 본 적도 없기 때문에 SAM2forthe-future.tistory.com Experiment 1Resolution : 1024x768 소요 시간은 40초 정도로 생각보다 오래 걸렸다.분류 정확도는 Good!심지어 입에 물고있는 나무잎까지 분류해냈다.. Experiment ..