안녕하세요.
이번 글에서는 제 경험을 먼저 이야기한 후, AIoT에 대해서 설명해보려고 합니다.
0. AIoT에 관심을 갖게 된 계기
제가 전기전자컴퓨터(EECS) 소속으로 석사를 할 당시에 다양한 연구실들이 있었습니다.
보통 딥러닝이나 인공지능 연구를 하는 랩실들은 따로 모여 있는 경우가 많았죠.
하지만, 저희 랩실은 교수님께서 오래전부터 하드웨어도 같이 하고 있으셔서 광학, 센서, 집적기술을 다루는 랩실들과 같이 있었습니다. 이러한 랩실들이 보통 하드웨어 장비를 만들어내는 원천 기술들을 연구개발 하고 있었죠.
특정 도메인(의료, 패션 등)에서 딥러닝을 수단으로만 사용하는 경우나 딥러닝 자체만 연구하는 경우에는 앞서 언급한 하드웨어 장비들의 필요성을 못느끼는 경우가 대부분입니다 (자체 연구만 하기도 바쁘니까요;;ㅎ)
저 또한 하드웨어 장비에는 크게 관심을 갖지 않았죠.
그런데, 석사를 졸업하고 딥러닝을 이용해 사업을 한다는 마인드를 가지고 연구를 해보려고 했을 때 처음 부딪힌 것이 하드웨어 장비였습니다.
연구실에서는 이미 갖춰진 장비로 실험하면 됐지만, 아무것도 갖춰지지 않은 밑바닥 상태에서부터 시작하려니까 하드웨어에 대한 이해가 필수더라구요.
(↓↓↓제가 하드웨어 관련 장비들을 정리한 내용들 입니다↓↓↓)
또한 IoT 기기에서 얻는 데이터를 기반해 딥러닝을 접목하는 연구를 해보려고 했을 때, IoT(하드웨어) 장비들로부터 얻는 데이터가 굉장히 중요하다는 것을 알게 됐습니다.
하드웨어 장비들이 좋지 않으면 데이터의 상태가 좋지 않기 때문에 전처리 하는데 대부분의 시간을 보내게 된다는 점을 깨달았죠. (이러한 점을 미리 알았다면 하드웨어 연구실에 있던 연구원 분들과 더 많은 이야기를 하면서 더 친하게 지낼 수 있었을 텐데...)
하드웨어 소재와 같은 것을 공부하는건 시간 상 불가능했지만, IoT에 쓰이는 하드웨어 장비가 무엇이 있고, 내 아이디어를 위해서는 어떤 장비들을 쓰면 좋은지 알아가는 것만으로 충분하다고 판단했습니다.
이 과정에서 집적기술의 발달로 AI를 뒷받침 해주는 하드웨어 장비들이 점점 등장하기 시작했고, 이러한 장비들과 인공지능 기술을 이용해 데이터들을 분석하는 붐이 일어나기 시작했죠.
AIoT라는 기술이 위에서 언급한 개념들을 총괄할 수 있을 겁니다.
하지만, AIoT라는 개념을 이해하기 위해서는 IoT에 대한 전반적인 이해가 선행되어야 합니다.
그럼, 지금부터 IoT에 대한 개념을 먼저 살펴보고, AIoT가 무엇인지 알아보도록 하겠습니다.
1. IoT란?
IoT는 Internet of Things의 약자로 센서가 부착된 사물들을 인터넷 통신 기능을 통해 연결하는 기술을 의미합니다.
- 여기서 말하는 사물은 device, 객체, object라는 용어와 혼합해서 사용하기도 합니다.
- 센서의 종류로는 조도센서, 습도센서, 감지센서 등이 있습니다.
- 보통 IoT에서 통신기능은 무선통신(wireless)을 의미합니다
정말 간단한 예시를 들면, 아래와 같은 흐름으로 IoT가 실행된다고 할 수 있습니다. (굳이 Node-RED를 이해하지 않으셔도 됩니다!)
2. IoT 개발 프레임워크
여러분이 IoT를 이용해서 어떤 서비스를 제공한다고 가정해보겠습니다.
그렇다면 어떤 순서로 IoT를 개발해야 할까요?
물론 동시에 다양한 관점이 필요할 수 있겠지만, 굳이 순서를 나누자면 아래와 같다고 할 수 있습니다.
2-1. 하드웨어장비 선별하기
- 제일 먼저 해야할 일은 나의 아이디어를 구현시켜줄 적합한 IoT 장비를 선별하는 것입니다.
- IoT 장비들은 여러가지가 있는데 일반적으로 나누자면 메인보드 역할을 하는 부품과 메인보드에 연결된 센서(sensor) 또는 액츄에이터(actuator) 장비들이 있습니다.
- 메인보드 장비: 아두이노, 라즈베리 파이
- 센서: 조도센서, 열센서, 감지센서, 등....
- 액츄에이터: LED, Fan 등...
① 먼저, 아두이노와 센서장비를 연결 시킵니다. (보통 브레드보드를 사용하여 테스트하기도 하지만, 여기에서는 아두이노와 관련된 설명은 최대한 자제하도록 하겠습니다)
② 센서(오른쪽에 있는 기기)는 지속해서 아두이노(왼쪽에 있는 기기)에게 온도 정보를 전달합니다.
③ 컴퓨터와 아두이노는 USB로 연결할 수 있습니다.
④ 컴퓨터에서 프로그래밍을 작성해줍니다 (아두이노로부터 전달되는 온도 정보를 화면에 출력하는 프로그램)
⑤ 해당 프로그램을 컴파일시켜주고, 아두이노에 이식시켜줍니다.
(좀더 정확한 순서 "프로그래밍 입력" → "컴파일러를 통해 기계어로 변환" → "기계어를 하드웨어에 임베딩")
정리하자면, 아두이노 또는 라즈베리 파이는 센서 또는 액추에이터와 상호작용하면서 서로 정보를 주고 받게 됩니다.
위에서 언급한 장비들은 아래 사이트에서 찾아볼 수 있습니다. (아래 사이트 외에 다양한 사이트들이 있으니 비교해보고 구매 사이트를 결정하시면 될 것 같아요!)
※ 좋은 장비일 수록 비싸겠지만, 그만큼 더 좋은 데이터들을 받아볼 수 있는 것 또한 사실입니다!
※ 아두이노 프로그래밍 관련 내용은 추후에 따로 업로드 하도록 하겠습니다. (정리는 되어 있는데 옮길 시간이ㅜㅜ;;;;)
2-2. QoS(Quality of Service)와 MQTT(Message Queing Telemetry Transport) 통신
보통 PC에서는 TCP/IP라는 통신 프로토콜이 존재하지만 IoT 환경은 고성능 PC 환경과는 조금 다르기 때문에, MQTT라는 별도의 프로토콜을 이용해 IoT 기기간의 통신을 지원합니다.
ⓐ TCP/IP 프로토골에서도 Packet format이 있듯이 MQTT 프로토콜에서도 아래와 같은 Packet format이 있습니다.
흔히 IoT에서 적용하는 QoS 에는 MQTT 프로토콜(=protocol: 합의된 규약)이 있습니다.
Q. Qos란?
- QoS(Quality of Service)는 다른 응용 프로그램, 사용자, 데이터 흐름 등에 우선 순위를 정하여, 데이터 전송에 특정 수준의 성능을 보장하기 위한 능력을 말합니다.
- 이러한 우선순위는 국제표준기관에서 표준으로 정하며, 모든 국가가 해당 표준을 따릅니다.
- QoS가 구현되지 않아서 TV나 전화, 그리고 인터넷이 똑같은 우선순위로 케이블망을 사용하게 되면 인터넷 사용자가 다운로드를 동시에 여러 개 시도할 경우, TV는 당장 볼 수 없는 지경에 이르고, 전화는 불통에 이르고 맙니다
※MQTT에 대한 더 자세한 설명은 추후 아두이노 편에서 다로도록 하겠습니다 (이 역시 옮길 시간이 없어서..ㅜㅜ;;;;;)
그렇다면, IoT 환경에는 어떤 특징들이 있을까요?
[IoT 환경]
- IoT 환경에서는 무선과 같은 단거리 통신 (Bluetooth, Zigbee 등..)을 사용하기 때문에, 유선 통신에 비해 연결이 비교적 불안정하다.
- IoT 기기들은 전원을 통해 상시 충전되는 경우보다 배터리를 통해 기기들 작동시키는 경우가 많습니다. 그렇기 때문에, 종종 연결이 끊기기도 합니다. 이러한 문제들을 해결하기 위해 저전력으로 IoT 시스템을 운용해야할 필요가 있다.
- IoT 기기들은 수집한 데이터들을 서로 공유하기도 하며, 실시간으로 보내는 데이터 양이 많기 때문에 이를 처리하기 위해 많은 시간이 소모될 가능성이 높다.
- 이러한 불안정함을 프로토콜 상에서 안정적으로 보내주기 위해 별도의 QoS 기술(=MQTT)적용이 필요하다
위와 같은 문제들을 극복하고자 IoT 환경에 적합한 MQTT라는 프로토콜을 이용해 기기들간의 통신을 지원해줍니다.
2-3. Cloud server and IoT data
앞서 언급한 내용을 토대로 데이터가 어떤 흐름으로 흘러가는지 알아보도록 하겠습니다.
- 프로그램을 만들고, 컴파일을 한다.
- 프로그램 내용: MQTT 통신을 이용해 해당 정보(data)들을 클라우드 서버에 전송
- 컴파일을 통해 번역된 기계어를 아두이노에 이식시킨다.
- 아두이노에 해당 정보(data)와 관련된 센서를 연결시킨다.
- 해당 센서로부터 실시간 정보(data)가 아두이노에게 전송된다.
- 아두이노에 탑재된 통신장비(기기)가 해당 데이터를 와이파이로 전송한다.
- 전송된 데이터는 클라우드 서버에 저장된다.
이 후, 클라우드 서버에 모인 방대한 데이터들을 기반으로 분석합니다. (보통 이렇게 모인 데이터를 기반으로 데이터 사이언스 기술을 적용시킵니다)
그리고, 분석한 내용들을 user들에게 전송하게 됩니다.
https://www.youtube.com/watch?v=LlhmzVL5bm8
AWS, GCP와 같은 기업에서는 IoT 환경에 최적화된 클라우드 서비스를 제공해주기도 하고, 관련 경험들을 매년 개발자회의 같은 곳에서 공유하기도 합니다.
https://www.youtube.com/watch?v=aVe4LfSSe2E
https://www.youtube.com/watch?v=yqneDmw_HL8
※ 최근에는 아래와 같은 두 가지 요소로 인해 클라우드 서버를 대체할 만한 방법을 찾고 있습니다.
- IoT가 방대한 데이터들(ex: 멀티미디어 데이터)을 다루기 시작했다. → 데이터 용량 증가
- 5G와 집적기술이 지속적으로 발달하고 있다 → 한 번에 방대한 데이터를 빠른속도로 보내는 것이 가능
즉, 클라우드 서버가 너무 많은 데이터를 받아야 하기 때문에, 과부하 상태에 걸릴 것이라는 우려가 나오고 있습니다.
그래서, 몇 년 전부터는 Edge Computing과 같은 용어도 나오게 됐는데, 해당 내용은 다음글에서 다루도록 하겠습니다.
3. IoT 플랫폼 (user 관점)
앞서 언급한 내용들이 IoT 생태계를 만들어 나가는 내용들이라면,
이제부터는 연구자들이 만들어 놓은 IoT 생태계를 어떻게 이용하고 사용하는지 user 관점에서 알아보도록 하겠습니다.
IoT 제조사들은 한 분야에만 특화 되어있는 경우가 많습니다. 그렇기 때문에, 소비자들은 불필요하게 다양한 기기들을 사야되는 경우가 발생하죠.
예를 들어, IoT를 이용해 스마트 홈을 구성할 때, 커튼이나 조명을 핸드폰 어플로 조절할 수 있습니다. 그런데 이러한 경우 커튼과 조명의 제조사가 다르면 각각 다른 2개의 어플로 따로 조절해줘야하죠.. 여간 불편한 일이 아닐 겁니다.
그렇기 때문에 이러한 IoT 기기들을 어떻게 통합하고 관리할건지도 사용자 측면에서 굉장히 중요한 요소가 됩니다.
이러한 개념들을 잘 설명해주는 영상을 아래 첨부하도록 하겠습니다.
https://www.youtube.com/watch?v=FoTZkjuKZ_Q
제 개인적으로는 윗 영상을 보고나서 느낀 점은 아래와 같습니다.
“통합플랫폼을 구축하는 것을 봤을 때 IoT의 가장 큰 적은 폐쇠성이다!”
“통합플랫폼의 trend가 어떻게 변화하는가, 어떤 통합플랫폼을 이용하는 것이 좋은가에 대한 질문을 지속적으로 던지는 것이 좋으며, 관련 학회를 예의 주시 해야한다!”
[학회예시1 - Consumer Electronics Show(CES)]
- CES에서 선정한 키워드로 가전 Trend를 알 수 있음
- 2019 CES가 선정한 5가지 키워드 중 하나가 smarthome
- 이번 기조연설에는 Samsung, 아방카, Quibi, Delta, Daimler, 미국 교통부가 발표
[학회예시2 - 사물인터넷 학회(ICIoTC: International Conference on IoT&Convergence)]
또한 연구자들은 아래 영상에서 처럼 사용자들이 불편해 할 만한 부분들이 무엇인지 파악하는 것이 굉장히 중요할거에요!
https://www.youtube.com/watch?v=pKFI4btN6zY
※ IoT 기기들을 이용해 스마트 홈을 구축하고 싶으신 분들은 아래 유튜브 채널을 구독하시면 좋을 것 같습니다~
https://www.youtube.com/watch?v=8Hu1KNPubJE&list=PLdmN8aAKRnIy3lgei1YNrOdlazt1wnaDv
4. AIoT
AIoT(=AI+IoT)는 AI와 IoT의 합성어입니다.
간단히 말해, 앞서 말한 IoT와 AI 기술 (machine learning, deep learning)들을 접목시킨 것이죠.
지난 몇 년간 사물인터넷(IoT)으로 집, 자동차, 가전제품 등이 서로 연결된 스마트 홈 구축에 쏠렸던 관심이 지금은, 서로 연결된 각각의 제품에 인공지능 기술을 탑재하는 방향으로 변하고 있는 추세입니다.
예를 들어, 클로바 같은 것도 딥러닝을 이용한 음성인식 기술을 IoT 기기에 탑재한 케이스이고, 딥러닝 모델을 CCTV에 인식시킨 후 이상감지가 발생하면 실시간으로 알려줄 수 있게 됩니다.
(↓↓↓Smart home 예시↓↓↓)
https://www.youtube.com/watch?v=909Nn9_hrlM
이렇게 딥러닝 기술들을 IoT 기기에 올리기 위해서는 큰 딥러닝 모델(network)를 압축(compression) 시켜야할 기술이 꼭 필요하겠죠? (굳이 IoT 기기가 아니더라도, 드론, 위급상황시 투입되는 로봇들 등에 딥러닝 모델을 올리기 위해 network compression 기술이 필요하기도 합니다)
(↓↓↓JTBC에서 소개된 신동의 스마트홈, 3:30초 부터↓↓↓)
https://www.youtube.com/watch?v=UyogFYk_7Mg
https://www.youtube.com/watch?v=sYqjs8TKkOE
5. Smart 시장
이 글을 마무리하면서 AIoT가 가장 활발하게 적용될 만한 Smart 시장의 예시들을 다룬 영상들을 첨부하면서 마무리 하도록 하겠습니다!
1) Smart Farm
https://www.youtube.com/watch?v=zj1EUhGizxc
2) Smart City
https://www.youtube.com/watch?v=mV31yAAncAg
3) Smart Factory
https://www.youtube.com/watch?v=r3dAZnztn-Q
4) Smart home
https://www.youtube.com/watch?v=qR3vACJnkFA
https://www.youtube.com/watch?v=chOWxkUOgVA
[참고 래퍼런스]
https://dalkomit.tistory.com/111
'Network Compression for AI' 카테고리의 다른 글
3. Network Compression 기술 (0) | 2021.06.04 |
---|---|
2. Edge Computing이란? (0) | 2021.06.04 |
이 글을 쓰게 된이유 (0) | 2021.06.04 |