如何用編程語言自制游戲,現在的技術能讓玩家自己制作FC游戲嗎?
AK47黃金
如何學習編寫人工智能軟件?
這是一個非常好的問題,作為一名IT從業者,我來回答一下這個問題。
如果當前要想編寫人工智能軟件,通常有兩種路線,一種路線是自己完成人工智能算法的設計和實現,同時完成最終的軟件編寫(場景落地)過程。以開發機器學習的落地應用軟件為例,開發者可以自己完成數據收集、算法設計、算法實現、算法訓練、算法驗證等一系列步驟,然后最終完成算法應用。這種開發路線對于開發人員的要求相對比較高,而且開發周期也相對比較長,好處是可以根據應用場景進行更加靈活地調整。
另一條開發路線是基于已有的人工智能平臺來完成人工智能軟件開發,采用這種方式對于開發人員的要求相對低一些,開發人員只需要根據場景的要求把相應的功能集成到軟件中就可以了,這種開發方式也會有相對比較短的開發周期。在生產環境下,采用基于人工智能平臺進行軟件開發是比較現實的選擇,也會快速推動人工智能技術的落地應用。
對于基礎比較薄弱的初學者來說,要想快速掌握人工智能軟件的編寫,可以先從學習人工智能平臺開始。當前大型科技公司紛紛開放了自己的人工智能平臺,這些人工智能平臺大多基于計算機視覺和自然語言處理技術打造的,相關技術也有大量的落地應用案例可以參考。
學習基于人工智能平臺的開發,可以按照三個階段來組織學習計劃,首先要學習編程語言,目前從Python語言開始學起是不錯的選擇;其次是學習人工智能平臺的體系結構和功能(API);最后是進行場景實踐練習。
我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關于互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!
可以用Python編程語言做哪些神奇好玩的事情?
Python作為一種應用極為廣泛的語言,幾乎在任何領域都能派上用場。想做Web有Flask/Django/Tornado;想做分布式有Celery;想做手機App有Kivy;想做數據分析有Pandas;想做可視化有Matplotlib/Seaborn/Plotly/Bokeh;想做機器學習有Tensorflow/PyTorch/MxNet……
夸張一點說,幾乎沒有什么做不了的東西(筆芯)。小慕今天分享兩個可以用Python做的非常好玩的事情,大家都可以試試看~一、面部識別得益于大量前人的工作,如今利用Python做一些簡單的計算機視覺工作已經變得非常非常簡單了。像人臉識別、面部特征提取之類的工作,就可以直接拿來用,極少需要自己實現繁瑣的算法。
DLib就是一個這樣的C++庫,而同時它也提供了Python接口。
想必大家都有過在辦公室遭遇boss探視的經歷,而此時此刻你卻在毫無自知地逛著淘寶/知乎/豆瓣,場面一度十分尷尬……
那我們就來嘗試一下,用Python通過攝像頭探測人臉。如果有人進入了攝像頭范圍,則讓Python提出一個通知,告訴你——趕緊把不相關的東西關掉!
整個代碼很短,無非幾十行,為了能夠使用,我們還需要安裝一些包和庫。這里需要用到的包括OpenCV和DLib。由于dlib需要boost-python,因此還需要安裝boost和boost-python。(注意:boost-python默認情況下只編譯python2依賴的庫,如果使用python3,需要加編譯開關;而dlib里是沒有探測python版本的,所以可能還需要做一些小hack或者是直接改boost-python庫里的文件名)
至于代碼,可以簡單地放出來:
import cv2import dlibfrom subprocess import callfrom time import timeFREQ = 5FACE_DETECTOR = dlib.get_frontal_face_detector()# macOS下可以使用AppleScript發送通知def notify(text, title):cmd = r'display notification "%s" with title "%s"'%(text, title)call(["osascript", "-e", cmd])if __name__ == '__main__':# 初始化攝像頭cap = cv2.VideoCapture(0)# 創建繪圖窗口# cv2.namedWindow('face')notify_time = 0while True:# 獲取一幀ret, frame = cap.read()# 不需要太精細的圖片frame = cv2.resize(frame, (320, 240))# 探測人臉,可能有多個faces = FACE_DETECTOR(frame, 1)for face in faces:# 提取人臉部分 畫個方框# fimg = frame[face.top():face.bottom(), face.left():face.right()] # cv2.rectangle(frame, (face.left(), face.top()), (face.right(), face.bottom()), (255, 0, 0), 3) # 不超過FREQ秒一次的發提醒if time() - notify_time > FREQ:notify(u'檢測到人臉', u'注意')notify_time = time()# 畫到窗口里# cv2.imshow('face', frame)# 按Q退出if cv2.waitKey(500) & 0xff == ord('q'): break# 清理窗口 釋放攝像頭# cv2.destroyAllWindows()cap.release()代碼的原理很簡單:通過opencv捕獲攝像頭獲取的圖像,然后交由dlib的face detector進行檢測。如果檢測到臉部,則通過AppleScript發出系統提醒(notify函數即通過process執行AppleScript發出提醒,如果你使用的是Windows,也可以替換成別的內容,例如Win下使用VBScript發出彈窗提醒)。
當然,既然檢測到人臉,那就不僅僅只是能做簡單提醒了。還可以做的事情包括多張照片的臉部變形合成——比如,找出你和你女朋友的照片來做個夫妻相合成什么的……
或者,提取所有的標志性點,給人臉合成出意外的表情或者哈哈鏡效果。
甚至可以借助其它的深度學習網絡進行人臉識別。這算是超級弱化版的臉部識別,比不上FaceID但也挺好玩,不過計算量就不容樂觀了。
順便說一句,什么人臉識別關掉不該看的東西,對小慕來說不存在的,人家上班刷知乎可是經過老板點頭的!(驕傲臉叉腰)
二、數據分析來分析下Marvel 今年的最后一部戲:「雷神3:諸神的黃昏」。前一段時間滿天飛的預告片,神秘博士的客串,綠巨人的出演,看得人十分興奮!來張大圖:
大家對于這部電影的評價是怎么樣的呢?小慕爬取了2w條豆瓣影評,做一個簡單分析。
先來看看豆瓣的短評:
這里只抓取了前2w條評論,說一個小技巧,喜歡寫爬蟲的小伙伴們注意了:爬取的網頁一定要緩存到本地!這可以減少解析網頁時出錯,避免需要重新再爬一遍的「尷尬」!另外這能給服務器減少負載,人家網站管理員看你的請求還算守規矩,也就不會封你賬號/ip啦!
代碼大概是這樣的:
下面是緩存下來的網頁文件:
既然有2w多條數據,怎么能直接寫sql,那會累死的……于是要來封裝一下操作數據庫的邏輯:
來看看效果,除去部分出錯的,還剩下19672條:
具體的數據是長這樣的:
另外,贊同數量排名第一 卷耳 君的影評實在是太有意思了:
第一部:《爸爸,再愛我一次》
第二部:《哥哥,再愛我一次》
第三部:《姐姐,再愛我一次》
ps:托爾終于從錘神變成了雷神
錘子之神這個梗小慕表示能玩一年(手動微笑臉)。
光有數據還不足以說明什么,深入分析一波:細心的小伙伴一定發現了,雷神明明是11月3號才上映,為啥10月份就有影評了?小慕猜測,這肯定是漫威鐵桿粉跑國外看了,一查發現,果然人家洛杉磯10月10號就上映了:
既然關心到日期,可以來統計一下周一到周日哪天去看電影的人比較多:
整體數據顯示:果然還是周末去看電影的人更多……周一數據高于二、三、四的原因,不知道是不是沒有周末的朋友調休去看的?
PS: 數據庫里的日期是2017-10-25格式的:怎么快速讓他顯示成周X呢? 這里只要寫個小函數就行:
從數據庫里讀數據和統計的方式在這:(后面的統計方式也都類似,就不每次都把代碼放出來啦)
說了這么多還是沒提到電影的受歡迎程度,直接放圖:
總體上看還是推薦的人比較多耶,這應該挺符合大家的預期,畢竟是漫威出品,光忠實粉絲就不計其數。更何況這個片子里出現了很多超級火爆的場面戲,還有各種超級英雄助陣,這樣的統計結果也就不足為奇了。
最后將排名前100的評論內容做了一下分詞,做成詞云:
至于補充提問中提到的這為什么適合用Python做,其實說到底就是用Python來抓取和處理各種數據都非常「順手」。
據小慕所知,目前的數據工作中,數據科學家使用最多的工具語言就是Python,排在第二的工具語言是R語言。但這里有一個有趣的現象,那就是同時使用Python或者R語言的人,推薦別人使用Python的卻遠高于R語言。Why?
答案是:1. Python簡單易學,極其容易上手,語法簡單,處理速度會比R語言要快,而且無需把數據庫切割。
2. 市場前景好,是目前的趨勢,就業也會更容易。
3. 標準庫非常龐大,特別的“功能齊全”,可以處理各種工作,其中就包含抓取和處理數據。
所以,有一種說法是:python語言在工程方便比較實用,R語言則更受學術界歡迎。具體是否贊同這種說法,還要看大家自己的理解咯~其實除了小慕舉例說的這兩種有趣的事情,Python能做的還有很多,在此不一一列舉,如果感覺get到了新姿勢,記得回來點贊啦~
程序員學習交流請添加慕課網官方客服微信:mukewang666回復暗號“前端面試”可進前端交流群回復暗號“Java”可進Java交流群回復暗號“專欄”可進程序員交流群以上就是關于如何用編程語言自制游戲和現在的技術能讓玩家自己制作FC游戲嗎的相關問題解答,希望對你有所幫助。