人工智慧系統(Artificial Intelligence System, AI) 2020

修訂日期:109/09/13
班級:數位三甲 學分:3學分
任課教師:吳智鴻 任課科系:數位內容科技學系
TEL:04-22183024
E-mail: chwu@mail.ntcu.edu.tw

FB社團 108數位系人工智慧

| 106 | 105 | 104 | 103 |

一、本課程之學習目的與教學目標

本課程為人工智慧領域的入門課程,在本課程著重在使學生瞭解人工智慧的內容、歷史、相關技術,並學會如何使用人工智慧的相關工具。並瞭解什麼是智慧系統辦得到及辦不到的事,實務上可用來解決的問題。本課程特別以實際業界資料集,透過完善的AI工具進行進行分析,使理論能夠與實務結合。上完課程之後,能夠應用在未來的問題中。

 

二、本課程之主要講授重點與範圍:

認識大腦:大腦如何改變
人工智慧的原理
(基因演算法、螞蟻演算法、粒子群演算法、計算智慧演算法)
人工智慧的發展歷史
遊戲人工智慧GAME AI
影像處理之人工智慧應用
LEGO機器人人工智慧
手機上人工智慧應用
人工智慧的商業應用
人工智慧的軟體
人工智慧相關論文討論

 

三、本課程之教學方法:

本課程之教學方法有三大重點:
1. 輔導學生能夠瞭解AI原理、
2. 熟悉現有AI分析工具,
3. 瞭解如何利用AI工具進行分析。

授課方式:
1. AI原理講解: 每週三小時原理解說。
2. AI分析工具: 老師上課講解與介紹AI相關工具
3. AI分析:透過實際業界資料,利用AI分析工具進行操作與分析,並瞭解如何解釋結果。

分組報告:
分組報告:每組同學依照指定議題進行分組報告。
期末報告:期末每組依課堂上介紹之內容與工具,完成一個專題。

 

四、本課程之評量方式與時間:

 平時成績: 30%      AI應用報告(個人)/出席/學習單
 期中專題: 30%      AI專題實作 (分組)
 期末專題: 30%      AI專題實作 (分組)
 E-portfolio 10%     個人

 

平時30%:上台報告
(The presentation includes
1. Theory Introduction,
2. AI tool or software introduction,
3. Papers in this topic
4. Your idea in this approach )

 

五、使用教材或參考書目:

[A] 文淵閣工作室,「Python機器學習與深度學習特訓班:看得懂也會做的AI人工智慧實戰」,碁峰出版社。
[B] 文淵閣工作室,「Python初學特訓班」,碁峰出版社。
[C] 高超群(譯): 「人工智慧 - 現代方法(第二版)」, 全華圖書, 2006.

---    其他教材及參考書籍、資料將由教師於課堂上發放或指定。

 

六、有關學習建議事項:

學生需在老師指定之主題下,主動尋找相關資料與軟體,與提出可能應用方向,以及AI相關技術改進之方法。
「遵守智慧財產權觀念」及「不得非法影印」。

 

七、本課程之教學進度:(請詳填於課程進度表)

週次  日期  課程內容 補充內容 Homework

1

09/16

課程介紹

課程介紹PPT

學習單0

20Q人工智慧遊戲

人工智慧介紹

人工智慧介紹

人工智慧是什麼?

人工智慧在數位上的應用

2D轉3D (Photoshop)

Mocha AE (自由追蹤的AE插件)

人工智慧談話器(George)

 

學習單#1 A原理與應用

2 09/23

AI產業應用

學習單#1 AI應用

AI & Machine Learning介紹

 

AI線上實作平台

AI applications

臉部辨識

AI in Humans

Game AI (Unity AI agent)

 

 

-IQ過河遊戲

-三個僧侶過河遊戲

PDF

人工智慧大作戰--遊戲世界

3 09/30

AI基本開發環境介紹

 

學習單#2 Python基礎

 

 

 

 

 

Anaconda

安裝anaconda

Spyder

Jupyter notebook

Jupyter notebook無法啟動的修復

 

網路教材

Python基本語法介紹

Python List與Dict的差別

 

教學PPT:

 

 

4 10/07

 

Github &遊戲開發專題

學習單#3

Ai產業應用與github

教學PPT:

Github

Git

 

 

AI與遊戲 in Python

學習單#4 github_Python遊戲演算法

-----------------------------------------------------------------------

# 下載聊天機器人程式碼

git clone https://github.com/maso0310/linebot.git

# 設定使用者姓名
git config --global user.name "Chih-Hung Wu"
git config --global user.email "chwu@xxx"

# 上傳app到heroku
heroku git:remot -a 你的APP名稱
git init
git add .
git commit -am'ok'
# 上傳檔案
git push heroku master

 

#設定遠端連線到github
git remote add origin https://github.com/xxxxxxx

5

10/14

AI基本開發環境介紹

 

學習單#5

網頁爬蟲

Python爬蟲教學

教學PPT:

安裝套件指令

  • pip install requests
  • pip install bs4

BS4指令教學(重要,需參考)

 

 

Prg素材

Prg:

 

6 10/21

Python基本

 

 

學習單#6

網頁爬蟲與開放資料

Python爬蟲教學

文字爬蟲運用專題

實作範例

 

AI與設計

AI人流

7 10/28

Python進階

NLP自然語言處理#1

文字爬蟲運用專題

  • 斷詞
  • 自定義詞庫
  • 停用詞

斷詞與文字雲

教學PPT:

相關程式

斷詞

Google搜尋結合文字雲

8 11/04

Python進階

NLP自然語言處理#2

文字爬蟲運用專題

  • 文字雲
  • 自動摘要

 

補充:

Google Colab

9 11/11 期中報告

109期中作品Google網路空間

期中企劃書說明(PDF)

期中企劃書說明(PPT)

 

108 期中作品備份

10 11/18

 

語音辨識

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

人工智慧應用:語音辨識、文字轉語音

 

 

學習單6_WEB網站擷取與語音翻譯

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

App Inventor2 基本

App Inventor2 與AI結合

App Inventor 2 文字轉語音

App Inventor2 臉部辨識

範例8 語音辨識

範例9 翻譯機

PPT教材 (網頁擷取概念介紹)

PPT教材(完整版,有兩個字典,加入Yahoo字典)

完成樣子

[完成APK] [完成AIA]

完成樣子 (有兩個字典)

 

 

11 11/25

AI專題實作#1

電腦視覺

OpenCV實作(電腦視覺與人臉識別)

產業應用

12 12/02

多層類神經網路MLP

手寫數字辨識

Mnist_MLP手寫數字辨識

CNN卷積神經網路手寫數字辨識

安裝opencv

  • pip install opencv-python==3.4.9.31

 

學習單7_深度學習網路_手寫數字辨識

13

12/09

嵌入式系統

樹莓派Pi

 

樹莓派

安裝

教學

設定檔

安裝OpenCV

  • conda install –y –c conda-forge opencv

 

 
14 12/16

進階AI專題

口罩偵測

社交距離偵測

 

 

COVID-19 face mask detection

Social distancing detection

 

 

 

 

 

 

15 12/23

進階AI專題

Speech Recognition

 

人工智慧的應用
LEGO機器人人工智慧

 

Google Speech Recognition

 

App Inventor 擴充功能

 

智慧型機器人發展現況與學習應用之展望
樂高機器人教學

樂高機器人程式設計說明1 (Youtube)

樂高機器人程式設計說明2 (Youtube)

形同美女的機器人 (Youtube)

目前最像人的機器人 (Youtube)

面部表情最接近人類的機器人(Youtube)

投籃機器人世界冠軍--吉峰國小(Youtube)

先進機器人2011當家(Youtube)

LEGO Mindstorms NXT: A Brief Introduction & Tutorial Part 1

LEGO Mindstorms NXT: A Brief Introduction & Tutorial Part 2

Micro:bit AI專題 剪刀石頭布

軟體

Kittenblock v1.84

Micro:bit修復

學習單 Microbit+AI

16

12/30

放假

手機上的AI應用

台灣iPhone專屬繁體中文社群網站

iPhone上的1A2B猜數字遊戲
iPhone上的20Q遊戲

iPhone上的井字棋

IPhone Ugly Meter

Google Mobile App

iPhone Google Voice Search

iPhone Google 視覺化搜尋

Google Maps + 3D建築

Android Voice Recognition by Vlingo

Word Lens讓你用攝影機翻譯全世界

Slow Down教你放慢車速聽音樂

想要看你以及未來另一半所生下來的小孩嗎?

Kinect+HMD Virtual Reality 3D虛擬眼鏡組合

鏡頭瞄準就翻譯

Google語音翻譯

Google 翻譯歌

緊急求救app

鍵盤檢驗帕金森症

人臉辨識

AI 產業應用實例

中研院近現代人物資訊整合系統

 

17 01/06

期末專題製作

 

臉書VR

Bot聊天機器人的應用

安裝anaconda

安裝opencv3 in Anaconda [說明網頁]

  • conda install -c conda-forge opencv=3.2.0
  • conda install -c menpo opencv3=3.2.0
  • 修改路徑
  • casc_path = "C:\\Users\\Apple\\Anaconda3\\pkgs\\
    opencv-3.2.0-np112py36_204\\Library\\etc\\haarcascades\\
    haarcascade_frontalface_default.xml"
  • 部屬到網路上

人臉辨識API 網址

人臉辨識介紹

即時影像物件辨識

App Inventor 物品辨識

App Inventor擴充

18 01/13 期末專題展示

期末專題雲端空間

109期末作品Google網路空間

期末報告說明(PDF)

專題空間(備份)

簡報範例 語言翻譯

         
    課外補充教材    
   

Raspberry Pi

 

 

開機與安裝 (安裝指令)

Miniconda安裝OpenCV3

安裝miniconda

安裝Cmake

安裝OpenCV3

 

Linux安裝Xwindow

    AI串接

Flask API

 

Flask 教學影片

 

   

AI專題實作#2

遊戲人工智慧GAME AI專題 [PDF]

路徑搜尋演算法
--A* Algorithm


--Dijkstra's Algorithm

 

A* algorithm (Amit's A*Pages)
A*演算法簡介

Unity

Wiki
Illustration of Dijkstra algorithm
Visualization of Dijkstra algorithm

Demos:

 Shark Attack

 Ping Pong

 runaway

 maze (建立迷宮)  sourcecode

 PathFind

 PathFind in Java (A*, Dijkstra, Depth First)

 Astar

 Astar Optimize

   

認識大腦:大腦如何改變

Jeff Hawkins 專題

傑夫•霍金斯談大腦科學將如何改變電腦

Wiki


大腦科學如何改變電腦 (TED Speech) (TED Wiki)

(TED Chinese Speech)

Book

第六感驚人的潛力PranavMistry(中文) (Youtube影片)

如何解讀別人的心思

發覺人類視覺的假象Youtube版)

香港科學館3D錯覺

腦內的兩個世界 (Youtube)

 
   

Extention

 

Thunkable與AI2轉換

Thunkable 入口網站

    app inventor2

文字轉語音

素材:

【補充教材】

範例九、Firebase雲端資料庫聊天室

教學PPT 如何連結Firebase 資料庫與簡易聊天室


手機螢幕錄影軟體Du Recorder

期中考程式範例:

鋼琴

   

OPENDATA與人工智慧

學習單7

Kaggle比賽介紹

新元件 Firebase

空氣污染指標PM2.5 APP實作

井字棋遊戲
井字棋遊戲AI設計
介紹

棋、謎與人工智慧 C
井字棋

井字棋

----------------------------------------

[作業範例]

範例一 簡報
範例二 簡報

範例三 簡報

 

範例10 開放資料

[教學PPT] [APK]

 

範例11 即時空氣品質APP

[教學PPT]

範例12 即時空氣品質進階版APP

[教學2 PPT]

    Anaconda環境  

 

Win10安裝Tensorflow gpu 2.0 ref


下載Anaconda Python 3.7

[ 一次全裝 ]
conda create -n py35 python=3.5 jupyter spyder tensorflow keras pandas sklearn
matplotlib imutils

#安裝tesnorflow 2.0 & 全裝

conda create -n tf2 python=3.7 jupyter spyder tensorflow keras pandas sklearn matplotlib imutils

#test your environment#
import tensorflow as tf
tf.__version__

#安裝Keras

pip install keras

#test your environment#
import keras
print (keras.__version__)

#安裝OpenCV

conda install -c https://conda.anaconda.org/menpo opencv

#如果不能裝,則裝新版opencv
pip install opencv-python

#test your opencv
import cv2
cv2.__version__

#創建虛擬環境並安裝tensorflow
conda create -n tensorflow python=3.7 jupyter

查看所有python虛擬環境
conda info --env

#在Jupyter notebook增加 kernel名稱

pip install ipykernel
python -m ipykernel install --name tf2

-----------------------------------------------------------------------------------
[ 安裝Tensorflow GPU 2.0版本 ]

conda create --name tensorflow-gpu
conda activate tensorflow-gpu

conda install tensorflow-gpu=2.0 python=3.7
conda install ipykernel
python -m ipykernel install --name gpu2

安裝cuDNN & CUDA
conda install cudnn=7.6.0
conda install cudatoolkit=10.0.130

test in Python

import tensorflow as tf
import keras
tf.__version__
tf.test.is_gpu_available()
若出現True表示GPU版本沒有問題

 

    Unity +AI ML-Agent

在Unity環境中訓練強化學習AI

強化學習的原理介紹
https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/1-1-A-RL/

ML-Agent (Github)
https://github.com/kwea123/ml-agents

在Unity環境中訓練強化學習AI

#1:ml-agents的介紹
https://www.youtube.com/watch?v=aOb0GSfA1pw

2:安裝所需軟體、強化學習簡單介紹
https://www.youtube.com/watch?v=61j0q81hoIw

#3. 構建Unity環境-1
https://www.youtube.com/watch?v=RjWpb7BazdA

#4. 構建Unity環境-2
https://www.youtube.com/watch?v=UIaywmBsCFM

#5. 使用python控制unity環境
https://www.youtube.com/watch?v=bsEYAlrD3mA

#6. 構建好的unity學習環境的詳細介紹
https://www.youtube.com/watch?v=RbouZ_KgaUc

#7. 強化學習的結果,火箭成功降落!
https://www.youtube.com/watch?v=xsvpvHn4WU8

OpenPose + UNITY
https://github.com/kwea123/openpose

Demo
https://github.com/kwea123/openpose/blob/master/doc/media/pose_face_hands.gif

    Neo4j 圖形化資料庫

 

Neo4j Community下載與安裝方法

https://blog.csdn.net/appleyk/article/details/79091898

修改啟動無法載入Module問題

https://blog.csdn.net/weixin_38883338/article/details/88377730

Java問題

確認java版本指令

  • java -version
    Flask Python WebServices

 

Flask教學

Flask Web Development Turorial#3 Webform

 

    Pi   Pi設定教學
    Openpose  

CMU Openpose下載

Openpose Github (有程式碼、影片)

         
      AI自動產生書法字型  
      Chatbot

NTLK chatbot

LSTM chatbot

   

 

 

Mask detection

CIFAR Object detection (CNN)


 

 

開放資料

相關軟體

ADT [Setup]

開發環境PPT

 

教科書

文淵閣工作室,「Python機器學習與深度學習特訓班:看得懂也會做的AI人工智慧實戰」,碁峰出版社。


 

文淵閣工作室,「Python初學特訓班」,碁峰出版社。

參考書

蔡宜坦,【詳盡解說! App Inventor 2 中文版 Android App 範例教本】,旗標出版。F5770

 

黃建庭,【你也會寫Android應用程式:App Inventor2專題製作】,松崗出版社。XP15067

 

李春雄,「App Inventor 2 動畫與遊戲程式設計」,五南出版社。

王培坤,「Google App Inventor開發手冊:不會寫程式也能設計你的 APP」,上奇資訊。

Android手機程式超簡單!!App Inventor入門卷

CAVE教育團隊,「Android手機程式超簡單 App Inventor」,馥林文化。

 

Affective Computing

Picard, Rosalind W. Affective Computing, Mit Press, 2000.

 

課外參考書籍

創智慧-理解人腦運作,打造智慧機器 On Intelligence

Jeff Hawkins & Sandra Blakeslee/著 洪蘭/譯

 

改變是大腦的天性-從大腦發揮自癒力的故事中發現神經可塑性
The Brain That Changes Itself

作者:Norman Doidge
譯者:洪蘭


 

大師談遊戲程式設計:核心技術與演算

大師談遊戲程式設計:核心技術與演算法