[Machine Vision] AVI 검사 시스템의 전체 흐름: 제품 촬영부터 OK/NG 판정까지
·
Machine Vision
오늘은 AVI 검사 시스템의 전반적인 흐름에 대하여 간단하게 정리해보고자 한다.(새로운 회사에 적응하느라 블로그 포스팅이 쉽지 않다 ..) AVI 검사 시스템우선 AVI란, Automated Visual Inspection으로 한국말로 직역하면 자동 영상 검사. 이다.이게 무슨 뜻이냐면, 카메라와 영상처리 알고리즘을 사용해서 제품을 자동으로 검사하는 시스템 자체를 이야기한다. 기존에는 사람이 공장에서 직접 육안으로 검사를 했지만, 머신비전 기술이 발전하면서 자동화되었다.주로 공정에서 발생할 수 있는 표면 스크래치, 이물, 찍힘, 인쇄 및 패턴 불량, 부품 누락, 위치 및 방향 오류 등과 같은 문제점들을 자동으로 잡아낸다.즉, 단순히 불량을 찾는 프로그램이 아니라, 제품에 조명을 비추고, 카메라로 촬영하여..
[Machine Vision] Machine Vision이란 ?
·
Machine Vision
운이 좋게도 머신비전 업계에 발을 들이게 되었다.앞으로는 머신비전 내용도 포스팅을 꾸준히 공부하며 기록해보고자 한다. Machine Vision컴퓨터가 사람의 눈을 대신하여 이미지나 영상을 분석하고, 이를 기반으로 자동화 공정에서 검사, 측정, 식별, 로봇 제어 등에 사용되도록 돕는 산업 자동화 기술 즉, 공장에서 제품을 생산할 때 불량품을 검사해야 하는데, 이미지나 영상 기반으로 검사하는 기술이라고 생각하면 된다. 머신 비전 시스템은 단순히 카메라뿐이 아니라, 여러가지 요소들로 구성되어 있다.조명 → 렌즈 → 카메라 → 영상 획득 → 영상처리 → 판정 → 설비 제어 머신 비전이라고 해서 당연히 알고리즘이 제일 중요하다고 생각할 수 있다. 하지만 초기에 조명과 광학 세팅이 잘 되어있지 않으면 아무리 좋은..
[AI] 너무 빠르다 .. , 프롬프트 엔지니어링부터 하네스 엔지니어링까지
·
AI
Claude Code가 엄청난 열기를 띄고... LLM 모델의 성능이 꽤나 준수한 상태가 되자 코드를 작성해주는 AI Agent들을 어떻게 하면 더 잘 활용할 수 있는지 한참 이야기가 많다. 문제는 Claude 가 가격대비 토큰이 빨리 줄어들어, 나는 이 흐름에 조금 늦게 뛰어들었다는 것.채용 공고들에도 이제는 AI 툴을 활용하여 코드를 작성하는 능력이 우대사항 혹은 필수 사항으로 여겨지고 있기에, 이번 기회에 공부해보고자 한다. 이전 AI Agent의 주요 기법들 ?큰 틀에서 기존까지의 AI 툴을 사용할 때의 주요 기법들은 프롬프트 엔지니어링, 컨텍스트 엔지니어링, 그리고 하네스 엔지니어링으로 흘러가는 흐름인 거 같다. 프롬프트 엔지니어링(Prompt Engineering)프롬프트 엔지니어링은 이전에..
[Flutter] Riverpod의 Family, Provider에 특정 인자 의존성 추가하기
·
우당탕탕개발기록
여전히 프로젝트를 진행하고 있습니다. Flutter는 아무리 사용해도 익숙해지지 않는 거 같아요 ... 아마 너무 React에만 뇌가 익숙해져 있어서 객체 기반의 구조가 너무나 어색한 걸테죠 .. 이번에도 실행 중 발생한 문제에 대한 이야기입니다.랭킹 페이지에서 상세 정보를 조회할 때 발생하는 문제1. 본인 상세 정보 조회 후 타인의 상세 정보를 조회2. 타인의 상세 정보를 조회 후 본인의 상세 정보를 조회이 두 가지 상황에서 이전에 조회했던 사용 시간 그래프 데이터가 캐싱되어 있는지 갱신되지 못하고 이전 내용이 뜨는 문제 발생 위의 사진은 해결된 상태, 즉 상세보기를 클릭한 사용자별로 조회가 정상적으로 되는 상황인데, 이전에는 무언가 문제가 있는듯 해당 사용자의 데이터가 아닌 이전 사용자의 데이..
[Flutter] 백그라운드 및 화면 꺼짐 관리, AppLifecycleState
·
우당탕탕개발기록
일주일에 하나씩 꼭 블로그를 포스팅하고자 노력하고 있지만 저번주는 학회 때문에 워낙 정신이 없어서 건너뛰어버렸다.. 이전에도 계속 이야기했지만, 나는 지금 3-2학기를 맞아 프로젝트 과목을 수행 중인데, 그냥 앱을 만드는 과목이다.학교 내에서 공부 시간을 측정하여 경쟁하는 서비스를 만들어보고 있는데, 타이머 측정 중 발생하는 기기 이벤트들을 관리할 필요가 있어서 해결한 문제들에 대해 글을 적어보고자 한다. 우선, 위에 보이는 것이 타이머 화면이다.이 화면에서, 타이머를 누르면 타이머가 실행되고, 종료를 누르면 종료된다.(이까지는 정말 간단하게 구현 가능하다.) 근데 이제 여기서 문제가, 예외적인 상황을 코드로 적용하지 않았다는 것이다.타이머를 실행 중 홈 화면으로 나간다면(앱을 그냥 백그라운드로 둔다..
[FE] 프론트엔드에서 MVVM을 사용할 가치가 있는가 ?
·
Frontend
MVVM이라고 들어봤는가 ?아마 디자인 패턴에 대해 공부했던 사람들은 잘 알고 있을텐데, Model, View, ViewModel의 세 가지로 나누어 역할과 관심을 분리하는 방법이다. 이에 따라 당연히 파일 구조 또한 Model, View, ViewModel 세 가지로 나누어져 개발을 하게 되는데, 보통 백엔드에서 많이 사용한다.쉽게 이야기하면 View에서는 화면을 보여주는 역할만 담당하고, ViewModel에서는 View에 보여주기 위한 데이터 가공 및 전처리를 담당하며, Model에서는 데이터를 받아오는 역할을 담당한다고 봐도 무방하다. 따라서 백엔드에서는 서버에서 Model을 통해 구현해둔 데이터 형식에 따라 데이터를 관리하고, Model 안의 Repository는 데이터베이스(DB)와의 통신을 ..
[YOLO] yolo 객체 박스 따기 꿀팁 ( 피펫 분주량 인식을 위한 데이터들...... )
·
우당탕탕개발기록
yolo 를 사용해본 적이 있는가 ?!Yolo는 객체 탐지 분야에서 많이 사용되는 사전 학습된 AI 모델이다. 기본적인 Yolo는...... Yolo 공식 웹페이지를 들어가보면, 아래와 같은 역사를 가지고 있는 것을 확인할 수 있다. 우리는 기본적으로 사전 학습된 모델들을 통해 바로 사용할 수 있다.이 Yolo 모델에는 기본적으로 COCO(Common Objects in Context) 학습 데이터를 사용해 미리 학습된 모델 파일이다.(즉, COCO 데이터셋에 포함된 객체들은 기본적으로 바로 인식하게 된다는 것) 기본적으로 위와 같은 객체들을 학습시켜둔 덕에, 우리는 해당 객체는 Yolo 파일을 다운로드 받아 바로 인식할 수 있다. Yolo 모델을 바로 사용하려면, 위 사진에 있는 Yolo 11 과 같..
[Flutter] Flutter로는 이렇게 쉽게 모달을 만든다니! (showModalBottomSheet)
·
우당탕탕개발기록
Flutter로 앱 개발을 하고 있다는 소식은 이전에 전해드렸었죠 ............(개인적으로 Flutter가 정말 너무 정말 싫습니다......)웹 개발을 먼저 해서 그곳에 익숙해져 있는 탓인지, 이전에 React Native를 했을 때 비약적으로 생산성이 좋았기에 Flutter로 개발할 때의 단점은 더 큰 게 맞지만.. 왜 도대체 Flutter가 크로스플랫폼 중 상위권인지... 의문을 접을 수가 없는 순간이 많습니다........ 그리고 저 만큼이나 플러터를 싫어하는 사람이 있는 거 같더라고요... 아마 제가 웹 개발 베이스라서 그런 거 같아요 ^^ 아무튼 하소연은 이쯤 하고, 오늘 할 이야기는 플러터가 예뻐 보였던(?) 순간인데요, 바로바로 모달입니다. 모달이 뭐냐!! 보통 "팝업" 이랑 "..
[Flutter] 타이머 위젯 만들기, CustomPainter
·
우당탕탕개발기록
학교 프로젝트 과목에서 열품타와 굉장히 비슷한 무언가(?)를 만들어보고 있다 ^^ 디자이너가 디자인을 따 주었고, 그걸 토대로 UI를 개발하는 중인데 처음으로 프론트 개발하며 이거 내가 손으로 다 해야한다고 ... ? 싶은 의문이 들었다. 이런 타이머 위젯을 개발해야 하는데, 조금 찾아본 결과 Flutter에는 이런 위젯 디자인을 가지고 있는 라이브러리가 없는 거 같았다 ....(그말은 즉 직접 만들어야 한다는 뜻..............) 그래서 일단 시간을 입력받아서 원 안의 진행도 원이 표시되게끔 만들어 보았다. 우선 시간은 단순히 시:분:초 같은 시간을 표시하는 용도의 값이기 때문에 Duration을 사용했다. 조금 고민을 해 본 결과, 바깥의 큰 원과, 시간이 나타나는 Text 와, 진행도를..
[FE] Zustand, 쉽고 간단하게 상태 관리하기
·
Frontend
상태 관리. 프론트엔드 개발에서 꽤나 중요한 것들 중 하나이다. 상태 관리는 크게 서버 상태 관리, 클라이언트 상태 관리가 존재한다.(이전 포스팅에서 두 차이점을 설명했을 것이다.) 간단하게 다시 짚고 넘어가자면, 아래와 같다. 서버 상태원격 서버나 데이터베이스에 저장되거나 관리되는 데이터로, 프론트엔드 측에서 비동기 요청을 통해 가져오거나 업데이트 할 수 있는 데이터를 의미한다.댓글, 좋아요 수, 분석 데이터 등클라이언트 상태UI와 직접적으로 관련되어 있으며, 웹 or 앱 내에서만 관리되는 데이터이다.React에서는 주로 useState로 관리한다.Form 데이터, 다크모드/라이트모트, 모달 열림 상태 등 이 중 우리는 Zustand를 사용하여 클라이언트 상태를 관리하게 된다.그럼 Usestate만으..