본문 바로가기

반응형

전체 글

(198)
버스봄 - tesseract ocr 파인튜닝 편 7월 4일부터 7월 9일까지 tesseract ocr을 파인튜닝했다. yolov + tesseract ocr로 구성된 번호판 인식 프로그램을 제작하는 것이 무엇보다 중요하기도 했고, 하드웨어 단도 어느정도 완료되었다고 판단해서 이 쪽으로 넘어왔다. 결과적으로 말하면 5 일간 파인튜닝한 모델은 사용되지 않았다. 다른 사람이 개발한 경량 ocr 모델을 팀원이 발견했고 속도와 정확도 모두 만족할 수준으로 빨랐다.(다만 해당 모델을 c++로 구성된 프로그램에서 구동시키기 위해서 팀원이 많은 고생을 했다. 라이브러리 빌드에만 꼬박 하루가 걸렸다;; => 이마저도 나중에 한화비전에서 제공하는 카메라 헤더 패킷에 차량 위치와 번호판 내용이 있어서 사실상 AI와 관련된 부분은 프로젝트에서 거의 빠졌다.) 파인튜닝의 목..
버스봄 프로젝트 - 하드웨어 편 프로젝트에 대해서 간단하게 설명하자면 강남역과 같이 BRT 버스 승강장에서 어느 위치에 어떤 버스가 서는지 예측하고 안내해주는 시스템을 구축하는 것이다. 여러 버스가 동시에 도착하는 일이 많아서, 타야할 버스를 놓치거나 혼잡을 겪는 일들이 많았다 gps 기반의 시스템의 경우 버스가 버스 정류장에 도착하는 시간 정도는 안내해주만, 어느 위치에 버스가 설지에 대해서는 버스가 버스 정류장에 도착해야 알 수 있었다. 특정 번호의 버스가 특정 위치에 서도록 지정해 놓은 곳도 있지만, 넓은 버스 정류장을 효율적으로 사용하지 못한다는 문제가 발생한다. => 카메라를 이용하여 버스가 서는 위치를 예측하고 안내함으로써 버스 이용객들은 보다 편리한 승차가 가능하고, 잦은 정차와 대기 시간을 줄임으로써 정류장 근처의 교통 ..
라즈베리파이 설정(모니터 없이) https://neighborhoodunclelab.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC-%ED%8C%8C%EC%9D%B4Rsapberry-Pi-%EC%85%8B%EC%97%85Set-up%ED%95%98%EA%B8%B0 라즈베리 파이(Rsapberry Pi) 셋업(Set-up)하기이번에 지나간 여름은 참 여러 모로 힘든 여름이었습니다. 날씨도 덥고, 코로나도 겪고, 뭔가를 하려고 하는 의욕도 뚝 떨어졌었네요. 다시금 뭔가 해 보려는 생각을 하려니 섣불리 쉽게 시작되neighborhoodunclelab.tistory.com 이 글이 좋은 듯 + git 관련해서 사용법https://yian.tistory.com/38 GitHub | Authent..
VEDA 61일차 - ARM 시장에서 자주 사용되는 칩은 M3, M4, M7 정도이다. (M4가 제일 많이 사용되는 것 같다.)arm 보드 내부 gpio 구조 => 0V ~ 3.3V 내 범위를 유지할 수 있도록 도와준다. HAL(Hardware Abstract Layer) 라이브러리 : 하드웨어 아키텍처와 상관없이 일정한 형태로 하드웨어를 동작시킬 수 있다. SP : 스택 포인터LR : 링크 레지스터, 함수를 수행하고 다시 돌아올 주소PC : 프로그램 카운터 인터럽트는 일반적으로 하드웨어에 의해 발생한다. 그 것과 별개로 STM32 MCU는 소프트웨어에 의한 인터럽트를 지원한다. HAL 라이브러리를 사용한 printf() => 여기서 막힘... 차후에 해볼 예정
VEDA 60일차 - ARM architecture ARM(Advanced RISC Machine) - 현재 모바일 디바이스의 대부분의 CPU가 ARM 계열이다.v1v2v3---------------------------------v4 ARM7 - 안성기폰v5 ARM9 - 이효리폰v6 ARM11 - 김연아폰--------------------------------- embeddedv7 cortex A.R.M - A(cortex-A : Highend(iphone, galaxy)), R(cortex-R : middle), M(cortex-M, M1, M3, M4 ... - Lowend(쿠쿠, 장난감, ...))-----------------------------..
VEDA 57일 - 59일 - 임베디드 리눅스 + 드라이버 / yocto yocto projectkernel 포팅을 자동화레시피를 이용하여 yocto를 돌리기만 해도 커널을 빌드할 수 있다.원래대로라면 toolchain, bootloader, kernel, rootfile system, drivers etc다 빌드해야하는데... workflow가 복잡하다. yocto 식(자동화 되어도 결국 수동으로 빌드하는 과정을 알아야 한다.)kernel porting -> program(script?) -> recepie 작성 -> bitbake(xxxxx.bb = task(S), .bbclass, .bbappend etc) ->bitbake core-image-minimal(이러면 build가 완료된다!!!) 포키(poky) : yocto project의 레퍼런스 시스템 / linux ..
VEDA 56일차 - 리눅스 커널 프로그래밍 및 디바이스 드라이버 디바이스 트리보드 위에는 많은 장치들이 존재plug-n-play : plug - driver load - play 과정이 내부적으로 진행된다.ex) connect -> 전기적으로 인식(회로) -> OHCI(EHCI) USB adapter controller가 인식 => device tree를 바탕으로 장치 드라이버가 존재하는 경우 실행(완전히 다르지 않는 이상 드라이버는 다른 유사한 장치에서도 사용 가능하다.)ACPIdevice tree : document, 현재 기기 상태에 대한 정보를 표기, .dts(device tree, 하드웨어 기술), .dtsi(include 파일, 하드웨어 기술) => .dtc(컴파일러) => dtb(device tree blob), .dtbo(dtb + overlay)dri..
VEDA 55일차 - 리눅스 커널 프로그래밍 driver model : 드라이버는 여러 형태가 있다. elixir 참조 1. old fashioned : module(insmod, rmmod) + device file(mknod(/dev 0 ~ 255, ~ 512)) + file_operations(open, close, read, write) 2. new fashioned : object oriented concept(,but not c++)복잡해지는 장치 위상 구조(허브의 허브의 허브의....)전원 관리 기능유저 영역에서 접근(/sys, sysfs) 구체적인 형태(bus(버스), devices(장치), driver(장치의 입출력), class(디바이스의 기능적 종류의 구분 방법, 일반 유저의 구분 기준)) 코드 중복 최소화(kobject_get..

반응형