전체 글 56

[Roboflow] roboflow export했는데 일부분만 받아졌나요?

네! 바로 접니다~ smart polygon을 사용하고자 roboflow를 이용해서 어노테이션을 진행했습니다. 1000장 조금 안 되는 이미지들을 하나하나 눌러가며 고쳐가며 폴리곤을 그리고 이제 yolo, detetron2용 txt와 json으로 내보내기 하려고 했습니다. 그런데 파일 용량부터가 20메가 입니다. 아무리 preprocessing에서 resize를 진행했다고 하더라도 이건 너무 적지않나 싶어서 확인해보니 56건정도의 이미지들만 내려받아졌습니다. 분노해서 다 지워버린 이유로 일부만 받은 자료는 없네요. 문제는 라벨링에 포함된 특수문자! 특정 수위를 폴리곤으로 그려서 라벨클래스에 %가 들어갔는데, 이게 들어간 부분은 예외없이 전부 export가 안되더군요. 네! export 가 일부분만 된다면..

python/AI 2023.04.28

[이미지 학습 AI] Detectron2를 사용해보자.

이러니 저러니해도 결국 나는 visionAI를 해야하나보다. 이번엔 매번 쓰던 yolo 시리즈 말고 다른 라이브러리를 사용해보았다. 바로 Detectron2! 깃 주소는 위 링크를 따라가면 된다. 오색 찬란한 README가 우릴 반겨준다. segmentation과 keypoint 등등 지원하나보다. 개발자로써의 내 소명은 전 세계의 학자들이 머리싸매서 만들어놓은 라이브러리를 "감사하게" 생각하며 잘 쓰자 이므로,,, 부딪혀보면서 배워보자. segmentation이니 우선, 이미지와 어노테이션이 필요한 것은 당연한 사실. 튜토리얼 따라가봤는데,,, 솔직히 튜토리얼도 좋지만 내 입맛에 맞는 데이터를 직접 학습하는게 제일 배우는게 빠르지않나 생각한다. 이미지는 여러분들이 원하는 것으로 수집하자. 어노테이션은 ..

python/AI 2023.02.15

[방화벽 설정] 외부에서 접속 허용하기

이전 회사에서는 AWS를 사용했다. 그래서 내부IP를 사용하면 어차피 외부에서 접속이 안되서 공인IP 위주로 사용했었다. AWS를 사용하다보니 그냥 인바운드만 설정하면 알아서 해당 포트가 열리니 크게 신경쓰지않았던 부분인데, 지금 이직한 회사는 자체 서버를 운영하고있다. 물론 AWS 사용하는게 어떻냐고 조심스럽게 얘기했지만 뭐..... 지금 쓰는 서버 사양이 나쁘지 않다는 이유로 기각당했다. 각설하고, flask로 서버에 띄워놓은 프로젝트를 상용으로 사용하려고 API 스펙을 전달하니 로컬에서는 잘 접속이 되는데 외부접속이 안된다고 연락이 왔다. 분명 ufw allow는 특정 port는 적용했어도, ip는 모든 ip를 allow 해놓은 상태였는데, 접속이 안된다고하니 고민을 좀 해봤다. ufw를 외부 ip..

linux 2022.11.24

[API] API가 뭐죠?

API? 웹 개발을 하다보면 참 많이 듣게되는 단어 API. 혼자 flask니 django니 개발할 때는 나 혼자서 기능 만들고 불러다쓰면 다른건 신경 안 써도 됐는데, 어찌 현업으로 나와보니 API 스펙좀 달란다. 처음 저 말을 들었을 때, 참 많이 당황했다. API ( Application Programming Interface ). AWS에서는 아래와 같이 정의한다. 더보기 API는 무엇을 의미하나요? API는 Application Programming Interface(애플리케이션 프로그램 인터페이스)의 줄임말입니다. API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타냅니다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있습니다. 이 계약은 요청과 ..

python/기초 2022.09.29

[Ubuntu] Flask / Django 등을 서비스로 등록하자

Python으로 웹 개발을 진행하면 그런 생각이 든다. nohup으로 상용 배포하면 안될까? 답은 란다. https://dailyheumsi.tistory.com/21 위의 링크에 설명되어있다. 간략하게 설명하자면.... 보안상의 이슈때문이란다. 그래서 작성해보는 서비스 등록하는 방법.! flask나 django 모두 gunicorn 이라는 middleware를 통해서 서비스 할 수 있다. 더보기 나는 지유니콘 이라고 발음하는데 어디는 구니콘이라고도 발음하더라. 이미 지-유니콘이 입에 붙어서 구니콘이 어색하지만 뭐 읽는사람 마음 그럼 일단 gunicorn을 설치해야하는데, pip install gunicorn worker로, 해당 app를 몇 개의 worker에 할당할 것인지 정하는 변수이고, --bin..

linux 2022.07.28

[이미지 학습AI] 이미지를 학습으로 annotation을 해보자.[2]

이전 게시글에서 jpg , xml 형식의 Pascal VOC Dataset의 이미지 데이터들을 다운로드 받았다. 우리가 사용할 모델은 yolov5로 링크는 다음과 같다. https://github.com/ultralytics/yolov5 물론 이전 게시글에서 클론 했지만 혹시하고 다시 적어본다. 기본적으로 yolov5는 yolo dataset을 사용하고있다. VOC도 변환할 수 있으니 너무 걱정은 안해도 된다. data/VOC.yaml 파일에서 아래에 스크립트가 보인다. import xml.etree.ElementTree as ET from tqdm import tqdm from utils.general import download, Path def convert_label(path, lb_path, y..

python/AI 2022.07.07

[AI] Semantic Segmentation을 해보자. feat.Custom dataset

어찌저찌 회사에서 업무를 하다보니 Semantic Segmentation을 진행하게 되었다. 그것도 Custom Dataset으로,,, 중요한건 데이터셋을 외부에서 직접 공수해야한다는 점이고, 그말은 즉 데이터 수집부터 라벨링까지 전부 스스로 해결해야 한다는 의미이다. 이에 그 기록을 남겨보자. 1. Semantic Segmentation? 여기서 다룰 내용이므로 간략한 설명은 아래의 포스트를 참고하자 https://medium.com/hyunjulie/1%ED%8E%B8-semantic-segmentation-%EC%B2%AB%EA%B1%B8%EC%9D%8C-4180367ec9cb 1편: Semantic Segmentation 첫걸음! Semantic Segmentation이란? 기본적인 접근 방법은?..

python/AI 2022.07.04

[파이썬 기초] Class를 알아보자.[2]

객체, 즉 오브젝트에 관한 수업이나 자료를 읽었다면 반드시 들어본 단어가 있다. 이라는 용어인데, 간단하게 클래스의 속성을 가지고온다라고 생각하면 이해하기 쉽다. 상속 이전 포스트에서 만들었던 Sandwich를 조금 추가해서 사용해보자. class Sandwich: def __init__(self, bread, **kwargs): self.bread = bread self.topping = kwargs for k,v in kwargs.items(): exec (f'self.{k} = v') def price(self): return sum(self.topping.values()) price라는 함수를 정의했고, 추가로 전달받은 kwargs에 있는 value만 가지고 가격을 정해주는 함수이다. 여기서 입지..

python/기초 2022.05.30

[파이썬 기초] Class를 알아보자. [1]

대다수의 프로그래밍 언어에서 객체 즉 Object라는 용어는 공통적으로 쓰인다. 파이썬 또한 객체지향언어이며, 모든 변수들이 각각 하나의 객체로 동작함을 의미한다. a = 1 b = 'string' c = 1.2 a,b,c 각각 int,str,float 라는 객체로써 동작한다는 의미이다. 객체? 우선, 객체란 단순하게 말해서 [틀] 이라고 생각하면 쉽다. 좀 더 쉽게, 라고 생각하자. 서브웨이에서 제공되는 가장 대표적인 메뉴는 일단 샌드위치다. 샌드위치를 떠올렸을 때, 빵 사이에 채소나 고기, 치즈등을 넣는 모양을 상상한다. class Sandwich: def __init__(self,bread,**kwargs): return 위와 같이 샌드위치라는 틀을 만들어주자. 안에 어떤게 들어갈지는 워낙 많으니 ..

python/기초 2022.05.27

[Django] 클라이언트에서 파일을 다운로드 해보자.

최근 의도치않게 웹을 설계하고있다. 장고를 처음 쓸 때 느꼈듯, 내가 html과 js를 쓰는건지 파이썬을 쓰는건지 헷갈릴 때가 많다. 각설하고, 이번 포스팅은 views에 다운로드하는 기능구현, html에서 form안에 있는 데이터를 전송하여 DB에서 다운로드. 1. html에서 form 데이터를 django에 전달. 아래는 지금 사용하고있는 html을 간단하게 적어놓은 코드이다. table로 체크박스로 만들고, 체크가 되어있으면 해당 value를 서버로 전달하는 역할을 한다. {% csrf_token %} Temp 내 경우엔, form태그 바깥에 버튼을 위치시켰다. 버튼 모양을 class='btn btn-info btn-xs'라는 css를 입혔지만, 담백하게 기능만 쓰기위해 아래의 예시에선 제외했다. ..

python/Django 2022.05.25
반응형