Coder Social home page Coder Social logo

alpha-car's Introduction

Alpha-Car

Members

  • 이용한 : 팀장, 차선 인식
  • 김범영 : 딥러닝, 물체 인식
  • 이지훈 : Motor, Sensor 제어
  • 이신효 : 통신

What is Alpha-Car?

  • 2017 한이음 공모전에 나간 Alpha-car팀의 '딥러닝 기반 자율 주행 버스 운행 시스템' 이다.
  • Deep Learning, OpenCV, Raspberry pi, RFID, 초음파 센서 등을 이용하여 구현하였다.
  • AlphaGo + Car

Implements Detail

  • SW

    • lane tracing using OpenCV (image processing Library)
    • Object Detection using Deep Learning (YOLO v2)
    • We can detect Car, Pedestrian, Stop sign and Traffic sign.
  • HW

    • DC Motor for driving power
    • Servo Motor for direction control
    • Ultrasonic sensor for front obstacle detection
    • RFID for Bus Stop Recognition

Result

Limitations

  • 학부 3학년 때 진행했던 프로젝트라 기술적인 문제들이 많다.
  • 라즈베리파이를 사용했기 때문에 차내에서 자체적인 실시간 연산이 불가능해서 GPU 서버에서 연산 하도록 설계.
    • GPU 보드를 사용하면 해결 가능 (NVIDIA JETSON TX1,2 / JETSON NANO / GOOGLE EDGE TPU 등)
  • 프로젝트 당시 딥러닝 물체 인식 모델인 YOLOv2에 대한 이해도 부족.
    • Pre-train된 weight를 사용한 것이 아니라 데이터 수집(from COCO, VOC, Udacity dataset) 해서 직접 학습을 시키는 부분에서 문제.
    • DarkNet의 BottleNeck 부분 잘못사용하고 있었음ㅜ
    • 논문에서 언급한 Multi-scale Training이나 Warm-up training 같은 성능을 올릴 수 있는 테크닉들을 사용하지 않음...
    • 모바일/임베디드 환경에서 연산 속도를 올릴 수 있는 Compression, Quantization 같은 Optimization 기법들을 사용했다면 더 좋았을듯. (TensorRT나 Tensorflow Lite 사용 권장)
  • 신호등 색상 판단을 딥러닝으로 하지 못했다.
    • 별도의 Class로 학습하기에는 labeling이 안되어있거나 그 수가 매우 적었다.
    • 임시로 HSV의 threshold로 Green/Red를 판단하긴 했는데, 카메라 환경 변화에 매우 민감해서 잘못된 판단이 일어난다.
  • 차선 인식 알고리즘도 많은 개선이 필요하다.
    • Opencv의 가장 기본적인 알고리즘으로 사용했기 때문에 여러 문제점이 많다.
    • 차선 영역이 뚜렷해야 동작이 되고, 환경 변화에 매우 민감하며 커브길에서 불안정하다.
    • 개선된 영상처리 알고리즘을 사용하거나 딥러닝 (Semantic Segmentation)으로 차선 인식할 필요가 있다.
  • 차량 제어 알고리즘이 매우 부실함.
    • Lane Tracing을 차선 중앙 좌표만으로 판단하기 때문에 불안정하다.
    • 딥러닝으로 물체가 어디있는지 위치(좌표)는 알지만, 차량과의 거리나 각도 등을 제대로 알지 못한다. (2D perspective image 이기 때문)
    • 우선 임시로 y좌표 값으로 거리를 판단하는 식으로 사용하긴 했지만, 제대로 될리가 없다..
    • 또한 frame마다 물체를 인식하는 것이기 때문에 Object Tracking을 해야 하는데 이 부분도 임시 알고리즘으로 사용했음.
  • Multi-Threading 부분도 다시 손봐야 할 것 같다.
    • 라즈베리파이에서 여러 센서들을 처리하기 위해 Multi Threading을 사용하긴 했음.
    • 하지만 당시 막판에 급하게 적용했던 코드이기 때문에 다듬어야할 필요가 있어보인다.

alpha-car's People

Contributors

qjadud1994 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

alpha-car's Issues

안녕하세요 질문올립니다

안녕하세요코드 보다가 궁금한게 있어서 물어보려고 합니다line detection에 line_stream.py에서 server_address는 어디서 가서 확인할수 있을까요??

전기공학과 4학년 학부생입니다. 코딩에 관해 궁금한 점이 있습니다.

안녕하십니까.
자율주행차량에 관련하여 종합설계 중에 만든 분의 프로젝트를 모방하고자 하는 도중에 과의 특성상 파이썬 코딩에 취약하여 초보적인 질의사항이 생겼습니다.

너무 광범위한 질문이라 조심스럽지만 질문 내용을 아래와 같습니다.

  1. Control.py가 전체적인 파일의 구성을 책임지고 이것만 실행시키면 별도로 다른 파일 실행 없이(예를 들어 sudo python XXXX.py명령어로 Control.py 파일외에 다른 파일들은 실행 없이)전체 .py 파일들과 물리적인 구동이 가능한지 알고 싶습니다.

  2. Adafruit.PCA9685가 지정되지 않아 파일 구동이 되지 않는데, 이것을 따로 지정해두신 곳을 못 찾았습니다. 저희는 L298N 모터 드라이버를 사용하는데 혹시 PCA를 사용해야 할까요??

감사합니다

최종보고서를 보고싶습니다 !

안녕하세요 소프트웨어학과 4학년 학생입니다
저희가 진행하고 있는 캡스톤의 주제가 자율주행차입니다.
Alpha car 영상을 보고 저희의 주제와 많이 비슷했고
한이음 공모전 사이트에서는 더이상 최종보고서를 다운 받을 수 없었기 때문에
도움을 얻고자 연락을 드리게 되었습니다. 혹시 최종 보고서를 받을 수 있을까요?

보고서 다운 문제

안녕하세요. 자율주행 프로젝트를 진행중인 학생인데요. 보고서를 다운받았는데 열리지 않던데 혹시 이메일로 받아볼 수 있을까요?

안녕하세요 광운대학교 전자통신공학과 4학년 학생입니다. 프로젝트 관련하여 질문 좀 드려도 될까요??

안녕하세요 광운대학교 전자통신공학과 4학년 학생입니다
저희가 캡스톤디자인 프로젝트를 진행하고 있는데 주제가 자율주행 RC카입니다.
다름이 아니라 한이음 프로젝트로 하셨던 Alpha car 영상을 보고 저희의 주제와 많이 비슷했고
도움을 얻고자 연락을 드리게 되었습니다. 혹시 괜찮으시다면 4wd rc카 베이스 차체의 구입처나 또는 구매하셨던 링크를 얻을수 있을까요? 저희가 구매한 rc카 베이스 차체에 서보모터가 없어서 다시 구매를 해야하는 상황에 있습니다.
읽어주셔서 감사합니다. 답변 기다리겠습니다.

안녕하세요 코드에 관해 질문있습니다!

안녕하세요 github에 있는 코드에 관해 궁금한점이 있습니다. 혹시 코드에서 전역변수 설정한 이유랑 get lane부분에서 왜 경우를 3가지로 나눴는지좀 알려주실수 있을까요? 그리고 왜 왼쪽 오른쪽 레인 차선추출 함수를 따로 짰는지 제생각엔 기울기를 이용해서 추출해낼수 있을 것 같았는데 따로 짠 이유를 알려주시면 감사하겠습니다!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.