기본 콘텐츠로 건너뛰기

[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와...

[2024-01-09] Python OpenAI API 유료결제 및 gpt-4-1106-preview 예제 (Feat. USB-C 젠더, 꺽은형)

안녕하세요. 클스 입니다. gpt 4 turbo 가 발표되면서 한번 써보고 싶었습니다. chat gpt 유료 결제를 하면 API 를 사용할 수 있나? ==> 없음 api를 유료 결제하면 chat gpt 4를 사용할 수 있나? ==> 없음 결론적으로 각각 결제를 해야 사용이 가능합니다. 웹에서 많이 사용하는 분들은 chat gpt 유료 결제하면되고 자동화를 하거나 프로그램과 연동하려면 api를 유료 결제 해야 합니다. 워낙 관련된 자료는 사이트에 많아서 생략하겠습니다. 다만 gpt 4 turbo를 사용하려면 api 1.0 이상이 되면서 함수가 변경되었네요~ 모델별 학습 데이터 모델명 세부 모델 토큰 데이터 학습 입력 출력 (1K) (1K) GPT-4-Turbo gpt-4-1106-preview 128,000 23년 4월 $0.01 $0.03 gpt-4-1106-vision-preview 128,000 23년 4월 $0.01 $0.03 GPT-4 gpt-4 8,192 21년 9월 $0.03 $0.06 gpt-4-32K 32,768 21년 9월 $0.06 $0.12 GPT-3.5 Turbo gpt-3.5-turbo-1106 16,385 21년 9월 $0.00 $0.00 gpt-3.5-turbo-instruct 4,096 21년 9월 $0.00 $0.00 준비 및 설정 $ mkdir openai $ cd openai $ pip install --upgrade openai $ pip freeze | grep openai openai==1.6.1 $ code . 예제 1 from openai import OpenAI client = OpenAI(api_key = ' 여기에 발급 받은 키를 입력하세요 ' ) completion = client.chat.completions.create( messages=[ { " role " : " system " ...

[2023-10-21] Python 3.12.0 버전 발표(Release Date: Oct. 2, 2023)

  Python 3.12.0 버전 발표(Release Date: Oct. 2, 2023) 요약 : 파이썬 3.12, f 문자열 개선 등 개발 편의성 향상 Release Note https://www.python.org/downloads/release/python-3120/ python 3.11 과 3.12 의 주요 기능 비교 * f 문자열은 복잡한 문자열 출력을 위한 문자열 형식화 기능의 하나다. 문자열 앞에 알파벳 f를 붙인 후 중괄호({}) 안에 공백 크기 지정 등 고급 형식지정 문자열을 입력해 바로 사용할 수 있다. * 신규 버전에서는 기존에 지원하지 않던 여러 줄의 표현식, 주석, 백슬래시 및 유니코드 이스케이프 시퀀스를 처리할 수 있는 기능이 추가됐다. * 표준라이브러리도 효율적인 활용을 목표로 수정이 이뤄졌다. 정리, 유용성 및 정확성에 중점을 둔 이번 수정작업에서 디스트유틸(distutils)패키지 등 더 이상 사용하지 않는 API는 제거되며 패스리브(Pathlib) 클래스가 서브클래싱을 지원하며, 명령줄 인터페이스가 모듈 SQLite3에 추가됐다. * 더불어 성능 개선 작업을 통해 내장 함수의 하나인 이즈인스턴스(isinstance)는 약 2~20배 속도 향상 됐으며, 비동기 I/O(asyncio) 패키지도 일부 벤치마크에서 약 75% 빨라진 것으로 나타났다. . * 파이썬 3.12버전은 인터프리터별 전역 해석기 잠금(GIL)을 적용해 여러 파이썬 스레드가 동시에 실행되는 것을 방지한다. 이를 통해 여러 CPU 코어를 보다 효율적으로 사용할 수 있는 하위 인터프리터 생성이 가능하다. * 이 밖에도 리눅스 커널 성능 측정 도구(perf)에서 C파이썬(CPython)을 지원하는 등 성능 개선 및 편의성 지원을 위한 업데이트가 이뤄졌다. * 출처 : https://zdnet.co.kr/view/?no=20231004094411 공식 발표 내용 * More flexible f-string pa...

[2023-10-20] jupyter notebook plot with plotly (인터렉티브 챠트 그리기, feat. 굿즈샵)

jupyter notebook plot with plotly  인터렉티브 챠트 그리기 안녕하세요. 클스 입니다. 1. 개요 - 데이터 분석을 하다보면 jupyter EDA 과정이나 분석 결과를 시각화하는 데 Jupyter Notebook을     많이 사용한다. - 그런데 matplotlib, seaborn 등을 사용해서 많이 그리게 되는데 문제는 정적인 이미지로 챠트가    그려지기 때문에 좀 더 세분화하여 보려면 챠트를 다시 그려야 한다. - 이때 챠트의 범위를 지정하여 세분화를 자동으로 할 수 있게 interactive한 챠트를 그릴 수 있는 것이    바로 plotly이다.  2. 소스 및 데이터 - 데이터는 아래와 같이 tm, 001 이다. data.csv 로 저장해둔다 tm, 001 2023-10-19 00:00:00, 2.071314 2023-10-19 00:10:00, 2.0601258 2023-10-19 00:20:00, 2.0492716 2023-10-19 00:30:00, 2.0405643 2023-10-19 00:40:00, 2.0341525 2023-10-19 00:50:00, 2.0311875 2023-10-19 01:00:00, 2.0286407 2023-10-19 01:10:00, 2.0251791 2023-10-19 01:20:00, 2.025551 2023-10-19 01:30:00, 2.026254 2023-10-19 01:40:00, 2.0247104 2023-10-19 01:50:00, 2.0253887 2023-10-19 02:00:00, 2.0254912 2023-10-19 02:10:00, 2.029705 2023-10-19 02:20:00, 2.0295382 2023-10-19 02:30:00, 2.0286813 2023-10-19 02:40:00, 2.028376 - plotly로 시각화 하기 import plotly.express a...

[2023-10-13] mac intel, M1, M2에 tensorflow GPU 사용하도록 설치

[2023-10-13] mac intel, M1, M2에 tensorflow GPU 사용하도록 설치 (feat. 셔틀콕 D3) 안녕하세요. 클스 입니다. 2023년 10월 초에 구글에서 tensorflow 2.14 버전을 출시했습니다. apple mac intel 칩이 장착된 2020년 이전 생산된 맥북들이 많습니다. 저도 2019년 맥 프로를 사용하고 있습니다. 워낙 nvidia가 cuda를 기반으로 머신러닝을 잘하는데, 안타깝게도 맥은 radeon 을 사용합니다. 2012년까지는 애플도 nvidia를 사용했다가, 발열로 인한 리콜을 한다음 radeon으로 변경한듯 싶습니다. 그 후로 머신러닝이 중요해지면서 GPU를 사용해야 하는 장비에는 nvidia 를 필수로 장착합니다. 아쉽게도 맥은 사용이 불가했었고, 일부 사람들이 맥에 장착된 radeon의 gpu를 사용할 수 있게 하려고 노력했습니다. 그 결과 지금은 metal 플러그인을 통해 지원이 가능해졌습니다. 그런데 버전 호환에 조합이 잘 필요하더군요~ 그리고 nvidia의 독주를 막기위해 여러 회사의 gpu에서 동일하게 코딩이 가능하도록 언어를 개발하는 회사도 있습니다. 언어는 mojo 라고 합니다. 아래 유투브 링크 걸어 두었어요~ 환경 - mac intel, mac m1, m2 - python 3.11.5  호환성 1. Intel MacOS 에 tensorflow gpu 사용하기    - tensorflow 2.12 버전만 tensorflow-macos가 지원한다.    $ pip install tensorflow-macos       tensorflow 2.12 버전이 설치된다.    $ pip install tensorflow-metal   (py311) [~/projects/tf]$ pip install tensorflow-metal Collecting tensorflow-metal ...

[Flutter](2023.09.19) Android 폰 Flutter로 개발한 앱에서 Local host 에 구축된 API 서버 접속하기

[Flutter] Android 폰 Flutter로 개발한 앱에서 Local host 에 구축된 API 서버 접속하기 안녕하세요. 클스 입니다 요즘 flutter를 공부하면서 앱 개발을 하고 있습니다. REST API는 macos에 fastapi로 개발했고 포트는 8001로 실행했습니다. 아래 그림과 같이 실제 device(폰)을 mac에 usb로 연결해서 mac에 있는 rest api 서버에 접속해야 합니다. 그리고 rest api 는 VPC를 통해 AWS의 RDS에 연결됩니다. 여러가지 연결방법이 소개되었는데, localtunnel 등은 내부 방화벽에서 막아서 안되네요~ 그래서 찾은것이 adb 의 고유 기능입니다. 요즘엔 에물레이트로 개발을 많이해서 잘 쓰진 않지만, 에물레이트에 카카오톡을 설치하기가 쉽지 않습니다. 연결 해서 테스트 해보기 1) android sdk 설치 및 경로 잡아주기 2) 터미널에서 $ adb reverse tcp:8001 tcp:8001     8001  ==> 이게 나오면 성공 3) fastapi 실행 : reverse tcp port와 같이 맞춰야 합니다.    $ $ APP_ENV=local uvicorn app:app --host "0.0.0.0" --port "8001" --reload  4) 스마트폰에서 크롬을 실행하고     http://127.0.0.1:8001/docs 접속하면 API 명세가 나오면 성공입니다. 이상 클스 였습니다.

[NFC 스티커] 생활 편리하게 만드세요~

[NFC 스티커] 생활을 편리하게 만드세요~ 안녕하세요 클스 입니다. 다양한 공간에서 휴대폰에 특정 앱을 실행하거나 명령을 해야 한다면 ? 1) 차에서 충전을 할 때 티맵 자동실행 2) 책상위에 폰을 올려두면 음악 나오기 3) 침대위에 올려두면 무음 모드 아래 유투브에서 보면 엄청나게 활용도가 많습니다. https://www.youtube.com/watch?v=ajcODPlpms4 쿠팡에서 구매 가능하며, 디자인이 들어간 것과 단순한 스티거 2종 소개 드려요~ "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다." 구매를 원하시면  이미지를 클릭하시면 됩니다. 1) 디자인이 좀 된 것 2) 맥세이프 호환   3) 단순 스티커 이상으로 생활에 유용한 NFC를 소개해 드렸습니다. 저도 해보니 생각보다 쉬웠고, 차에 붙혀두니 바로 목적이로 안내가 가능해서 자주가는 배드민턴 구장 , 회사, 집 3개를 해뒀어요~ 그럼 즐거운 주말 보내세요~