기본 콘텐츠로 건너뛰기

[2024-01-16] 도시가스 계량기 인식 모델 개발 with YOLO, Labelme : 1단계 라벨링

도시가스 계량기 인식 모델 with YOLO, Labelme

안녕하세요. 클스 입니다.

도시가스 계량기 이미지에서 바코드 영역과 검침부 숫자값 영역을 찾고, 텍스트로 변환하는 기능을 만들어 볼까 합니다.

이미지는 다양하면 좋습니다. 이 이미지를 가지고 아래 순서대로 작업을 진행하겠습니다.
1. 라벨링 --> 학습데이터 생성
2. 학습 --> 모델 생성
3. 인식
4. 평가

1. 라벨링 과정은 매우 시간이 많이 듭니다. Labelme 라는 라벨링 툴을 사용하려고 합니다.
(이미지 출처 : 웹 검색)

 


$ brew install pyqt
$ pip install labelme
$ labelme   ==> 하면 실행됩니다.

일단 실행하고 테스트 이미지를 불러온 모습입니다.


Labelme의 장점은 폴리곤으로 다양한 형태 라밸링이 가능합니다. 그리고 메뉴 > File > Edit에 가시면 사각형, 원 등 다양한 도구가 있습니다.

다음은 라벨링을 해둔 모습입니다.



메뉴에 Create AI-Polygon 등 AI 기능도 있는데, 이건 모델을 다운로드 받습니다,


AI 모델을 선택할 수 있고, 선택하면 모델이 다운되고 동작합니다.




마우스를 올리니 자동으로 폴리콘 영역이 설정됩니다. 바코드 영역, 검침 영역이 되면 좋은데 잘 안되네요



YOLO 라벨링 도구는 다양한 종류가 있지만, 사용성, 기능, 지원 플랫폼 등을 고려하여 몇 가지 추천을 드리겠습니다.

* 주의할 사항은 File 메뉴에서 Save With Image Data 항목을 꺼주는 것이다.
이 항목이 체크되어 있으면 생성되는 json 파일에 이미지 raw 데이터가 들어가서 엄청 커진다.
실행할 때마다 먼저 꺼줘야 합니다.
* 다만 labelme2yolo 를 이용해서 라벨링된 것을 YOLO 용으로 변환시에는 이미지 데이터가 저장되어 있어야 하네요~



무료 라벨링 도구:

  • labelImg: 간단하고 사용하기 쉬운 오픈소스 도구입니다. YOLO와 Pascal VOC 형식의 라벨링을 지원하며, 여러 이미지 포맷을 불러올 수 있습니다. 단, 라벨링 기능이 기본적이고 폴리곤 라벨링 등은 지원하지 않습니다.
  • VGG Image Annotator (VIA): 다양한 라벨링 작업을 지원하는 웹 기반 도구입니다. 경계 박스, 폴리곤, 점 표기 등 다양한 라벨링 형식을 지원하며, 협업 기능도 제공합니다. 단, 이미지 업로드 크기에 제한이 있습니다.
  • RectLabel: 무료이며 오픈소스인 Windows/Linux 데스크톱 애플리케이션입니다. 경계 박스, 폴리곤, 키포인트 등 다양한 라벨링 형식을 지원하며, 비디오 라벨링 기능도 제공합니다.
  • BBox Label Tool: 간단하고 빠른 라벨링을 위한 오픈소스 도구입니다. 경계 박스 라벨링만 지원하며, 반복적인 작업을 자동화하는 기능이 있어 대량의 이미지 라벨링에 유용합니다.

유료 라벨링 도구:

  • Labelbox: 다양한 기능과 협업 도구를 갖춘 강력한 라벨링 플랫폼입니다. YOLO, Pascal VOC 등 다양한 포맷을 지원하며, 데이터 관리, 품질 관리 기능도 제공합니다.
  • Supervisely: AI 프로젝트 전체를 지원하는 플랫폼으로, 라벨링, 모델 훈련, 평가 등 모든 단계를 통합 관리할 수 있습니다. YOLO, COCO 등 다양한 포맷을 지원하며, 커스터마이징 기능도 제공합니다.
  • Scale AI: 강력한 라벨링 기능과 자동화 도구를 갖춘 기업용 플랫폼입니다. YOLO, COCO 등 다양한 포맷을 지원하며, 데이터 품질 검사, 협업 기능 등을 제공합니다.

선택 기준:

  • 프로젝트 규모: 프로젝트가 소규모인 경우 간단한 무료 도구가 충분하며, 대규모 프로젝트에는 데이터 관리 및 협업 기능이 있는 강력한 도구가 필요합니다.
  • 라벨링 작업: 경계 박스만 라벨링 하는 경우 기본적인 도구가 충분하지만, 폴리곤이나 키포인트 등 다양한 라벨링이 필요한 경우 다양한 형식을 지원하는 도구를 선택해야 합니다.
  • 예산: 무료 도구가 충분하지 않을 경우 예산을 고려하여 유료 플랫폼을 선택할 수 있습니다.

선택에 필요한 추가 정보가 있다면 알려주세요. 프로젝트 규모, 라벨링 작업, 예산 등을 고려하여 선택하시면 좋겠습니다.


이상 클스 였습니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

혼자 자취할 때 유용한 라면 포트 : 코렐 SEKA 입니다. 설거지 편하고.. 여러개 요리가능합니다.

 [슈퍼HOT][CORELLE] 코렐 세카 나혼자 라면포트 저스트화이트, 단품

댓글

이 블로그의 인기 게시물

[quaser.dev][2014-09-14] 윈도우즈(10, 64bit)에 개발환경 설정하기

[quaser.dev][2014-09-14] 윈도우즈(10, 64bit)에 개발환경 설정하기

[2024-10-19] iPhone, iPad에서 ChatGPT로 PDF 생성시 한글 깨짐 해결 방법

iPhone, iPad에서 ChatGPT로 PDF 생성 시 한글 깨짐 해결 방법

[2025-04-16(수)] OpenAI gpt-4.1 시리즈 발표, Anthropic Claude에 대한 생각

OpenAI gpt-4.1 시리즈 발표, Anthropic Claude에 대한 생각 안녕하세요. 클스 입니다. 4/15일자로 openai가 gpt-4.1 시리즈를 발표 했습니다. 현재는 api로만 사용가능합니다. 점차 웹/앱 사용자에게 오픈 될거라 생각 됩니다. 비용상 문제로 4.1-mini, nano를 사용해서 chatbot을 만들어 보고 있습니다. 4o 시리즈 보다는 확실히 빠르고, 답변의 정확도는 올라간 것 같습니다. 앤트로픽 클로드와 비교를 많이 하는데, 업무 시스템 혹은 AI 솔루션을 개발하는 입장에서는 어떤 생태계를 제공하는가가 주요한 결정 입니다. AI관련 인력을 충분히 보유한 회사의 경우는 어떤걸 사용해도 좋을 결과를 가지겠지만 일반적인 챗봇 개발 절차를 보면 다음과 같이 볼 수 있습니다. 1. 문서를 준비한다. 대부분 pdf, text, markdown 2. 문서를 파싱해서 vectordb에 올린다.     - 별도 벡터디비 구성 필요. 어떤 db를 선택할지 고민 필요     - 어떤 Parser를 사용할지, 텍스트 오버래핑은 얼마가 적당한지 고민 필요        (회사의 문서가 워낙 많고, 다양하면 하나하나 테스트 해서 좋은걸 선택하는 것이 어렵다)     - 유사도 측정은 어떤 알고리즘을 써야할지 고민 필요     - llamaindex도 고민해야 함. 3. RAG flow를 만든다.     - langchain을 쓸지, 각 AI 벤더에서 제공하는 sdk를 쓸지 고민 필요       (대부분 락인이 되지 않으려면 langchain을 사용하면 좋지만, 벤더에 특화면 기능 적용이 늦음) 4. 챗봇 UI 앱을 만든다.     - 답변이 text 로 구성되다 보니. 그래프, 이미지등 복합적인 컨텐츠를 재배치 하여 표현하기 상당히 어렵네요. (이건 제가 실력이 모자라서 .. 패스) ...