본문 바로가기

프로그래밍

(25)
Pointcloud 사과 데이터 SUNRGBD형태로 만드는법 오늘은 커스텀 데이터인 사과 데이터에서 pointcloud 추출과 SUNRGBD형태로 만드는 법에 대해서 포스팅하겠습니다. 목표: 아래형식으로 커스텀 데이터 만들기 RealSense로 작업하는 법을 알기만하면 Kinect V2도 거의 비슷하기 때문에 쉽게 배울수 있습니다. Intel realsense sdk 실행합니다. export file 을 클릭하면 ply파일과 jpg파일이 생성됩니다. 이때 jpg파일은 image폴더에 저장하면 4개중에 1개를 만들었습니다. 이제 추출한 ply파일에 대해 라벨링(정답)을 해주어야 하고 pointcloud 또한 추출해서 bin(binary)파일로 변환해야 최종적으로 모델을 학습시킬수 있습니다. 3D 라벨링을 쉽게 해주는툴로 labelCloud가 있습니다. https:/..
error: can't find main(String[]) method in class 솔루션 main함수를 못찾겠다는 자바 에러입니다. 솔루션 public static void main(String[] args)함수(클래스 전체)를 코드 맨위로 옮겨주세요. eclipse에선 그냥 밑에 있어도 됐는데 터미널에서 하려면 이렇게 해야 되네요. 감사합니다.
SUNRGBD 데이터셋으로 FCAF3D(딥러닝)모델 학습하기 SUNRGBD 데이터란? 4개의 서로 다른 센서로 캡처되며 PASCAL VOC와 비슷한 규모로 10,000개의 RGB-D (D는 Depth 정보)이미지를 포함합니다. 전체 데이터 세트는 조밀하게 주석이 달려 있으며 정확한 객체 방향이 있는 146,617개의 2D 사각형과 58,657개의 3D 바운딩 박스, 장면에 대한 3D 공간 레이아웃 및 범주를 포함합니다. 이 데이터 세트를 사용하면 검출작업을 위해 데이터가 많이 필요한 알고리즘을 훈련하고, 직접적이고 의미 있는 3D 매트릭을 사용하여 평가하고, 소규모 테스트 세트에 대한 과적합(overfitting)을 방지할수 있습니다. 그래서 실내 딥러닝 3D Detection 을 할때 가장 많이 사용되는 데이터셋중 하나입니다. 오늘은 이 데이터셋을 다루는 법을 ..
Java, C로 Thread(쓰레드) 구현하기 이번 포스팅에선 우분투 환경에서 Java와 C로 쓰레드를 구현해 보겠습니다. 쓰레드란? 쓰레드란 간단히 말하면 작업단위 입니다. 예전 컴퓨터에서는 작업단위가 프로세스 였으나 현대에는 한 프로세스 안에 또 여러개의 쓰레드를 동시에 돌릴수 있습니다. 사실 완벽히 동시(simultaneous)는 아니고 마치 동시에 작동하는 것처럼(concurrent) 보이는 것입니다. 예시로 형광등은 사실 1초에 100번정도 깜빡거리는데 사람의 눈은 그냥 켜져있는것 처럼보이는것과 같은 원리 입니다. 흔히 프로그램을 짤때 main()함수의 한 흐름이 있는데요. 또다른 쓰레드를 만들지 않는다면 이 프로그램은 단일 쓰레드 프로그램입니다. 하지만 성능 향상을 위해 한개 이상 쓰레드를 만드는 경우 다중 쓰레드 프로그램이 되고 운영체제..
라인 트레이서 프로젝트 현대 가장 중요한 기술중 하나인 자율주행 시스템을 임베디드 디바이스를 사용하여 가볍게 구현해보는 프로젝트입니다. 그 내용은 아두이노를 사용하여 센서로 선을 인식하고 자율주행을 할수있는 모형 자동차를 만드는 것입니다. C언어를 사용하였고 스케치 프로그램으로 Arduino IDE를 사용하였습니다. #include Servo servoLeft,servoRight; long now = 0; //현재 시간을 저장할 변수 long w = 0; //blinking 함수를 위해 2초시간 재는용 변수 long t[2] = {0}; // 시간을 저장할 배열 long periodOfTime = 0; // 시간간격을 저장할 변수 int i = 0; // Stop함수 호출횟수 int led_L = 6; // 왼쪽 방향등 6번 ..
FCAF3D(딥러닝 모델) 논문 리뷰 및 분석 사과를 3D로 감지하기 위해서 딥러닝 모델을 선정하였는데 SUNRGBD(벤치마크) 데이터셋에서 2022년 1월까지 가장 성능이 좋았고(state of the art) 복셀을 이용한 방식으로 pointcloud만으로 빠르게 객체를 감지하는 등 강점이 있는 모델이라 최종선정 하였습니다. (선정과정에서 10편이상의 논문을 보고 다른 모델들도 돌려보았지만 사과에 대한 이 모델의 성능이 월등히 좋았습니다.) 참고로 SUNRGBD 데이터셋은 3D Detection의 정확도를 평가할수 있는 척도로서 이용되는 데이터셋으로 총 만개이상의 실내 물체에 대한 데이터이고 가장 유명한 데이터셋중 하나입니다. 이것에 대해 다음 포스팅에서 자세히 설명하겠습니다. 논문의 출처는 다음과 같습니다. FCAF3D: Fully Convol..
Ubuntu 자바(JAVA) 새 버전 대신 구 버전이 계속 뜹니다.(error) 이전에 자바를 다운로드 했고 이전 버전 지우고 새로운 버전을 다시 깔고 환경변수도 새버전으로 바꿔 줬는데 java -version하면 이전버전만 계속나오는 경우때문에 난감했는데요. 이럴때는 그냥 어차피 지금 version은 옛 버전이기 때문에 자바를 지운다는 명령을 치시면 옛버전이 지워지고 자연스럽게 새 버전이 나오게 됩니다. 과감히 자바를 지워주세요 $ sudo apt-get remove openjdk* $ sudo apt-get autoremove --purge $ sudo apt-get autoclean $ java -version
성경 자막 자동생성 프로그램 예전에 교회 방송실에서 자막 만드는 일을 했을때 만든 python 프로그램입니다. 설교 내용을 성경 여러군데에서 인용해야할 경우 성경 텍스트를 찾고 메모장에 옮기는 과정이 상당히 반복적이고 실수도 생겨서 자동화 하였습니다. # subtitles.py import re import os import time dic1 ={ '창세기' : '창', '출애굽기' : '출', '레위기' : '레', '민수기' : '민', '신명기' : '신', '여호수아' : '수', '사사기' : '삿', '룻기' : '룻', '사무엘상' : '삼상', '사무엘하' : '삼하', '열왕기상' : '왕상', '열왕기하' : '왕하', '역대상' : '대상', '역대하' : '대하', '에스라' : '스', '느헤미야' : '느'..