一直對人工智能有著極大興趣,無奈腦袋再大也無法想象那是一種怎樣的算法實現機制,因此無論是遇到聲音識別、色彩識別還是人臉檢測的需求,我都說不會、不知道、不了解!
今天給大家介紹的tracking.js庫帶來不同的計算機視覺算法和技術,在瀏覽器環境。通過使用現代的HTML5規范,我們讓你做實時色彩跟蹤,人臉檢測以及更多,小伙伴們終于可以發揮自己無限的想象力了。
下面是一些效果圖。
這個游戲 呢 是開啟攝像頭后,根據玩家頭的轉向進行控制的,非常有意思。
雖然看上去挺高深的但是使用起來卻很方便。
第1步:創建示例文件
在此步驟中,您將創建下示例文件examples/
夾到您解壓的本地驅動器下的項目。進入該目錄,并創建一個名為在你喜歡的編輯器文件。起始文件看起來像這樣:first_tracking.html
<!doctype html><html><head>
<meta charset="utf-8">
<title>tracking.js - first tracking</title>
<script src="../build/tracking-min.js"></script></head><body>
<script>
// Start tracking here...
</script></body></html>
步驟2:選擇需要的功能
現在,你有示例文件創建的,它的時間來選擇你要在行動中看到什么技術。有此頁面上提供了幾個例子,第一個,的跟蹤,僅僅是一個抽象類的其他跟蹤技術基礎,不能被實例化。一個很好的選擇下手的是ColorTracker,復制本部分提供的片段,并貼到您的示例文件,它到底應該是這個樣子:first_tracking.html
<!doctype html><html><head>
<meta charset="utf-8">
<title>tracking.js - first tracking</title>
<script src="../build/tracking-min.js"></script></head><body>
<video id="myVideo" width="400" height="300" preload autoplay loop muted></video>
<script>
var colors=new tracking.ColorTracker(['magenta', 'cyan', 'yellow']);
colors.on('track', function(event) {
if (event.data.length===0) { // No colors were detected in this frame.
} else {
event.data.forEach(function(rect) {
console.log(rect.x, rect.y, rect.height, rect.width, rect.color);
});
}
});
tracking.track('#myVideo', colors); </script></body></html>
這個例子會要求你出現在它的前置攝像頭和跟蹤品紅,青色和黃色。看看你的周圍,抓住這些顏色中的一種匹配的任何對象,看你的瀏覽器的控制臺,它應該顯示所有找到的對象的坐標。
項目的官網是:https://trackingjs.com/docs.html#introduction
或者直接用github搜tracking.
就這么多,enjoy it!!!
inux簡單操作命令回顧:
pwd# 顯示當前工作目錄的絕對路徑
ls # 列出目錄內容
ls -a # 列出全部文件,包括隱藏文件
ls -l # 列出全部文件,包括文件屬性和權限等
cd# 來切換目錄
cd ~ # 回到自己的家目錄
cd - # 回到上一次所在目錄
cd .. # 回到當前目錄的上一級目錄
mkdir # 創建一個新的目錄
mkdir -p # 創建多層目錄
touch # 加文件名來創建空文件
rm # 刪除指定的文件
rm -f # 刪除指定的文件而不提示確認
cat # 查看文件內容,從第一行開始顯示,適合查看小文件
cat -n # 查看文件內容同時顯示所有的行號,包括空行
more # 分屏查看文件內容。空格向下翻一頁,回車向下翻一行,Ctrl+F向下滾一屏,Ctrl+B返回上一屏,=輸出當前行號,:f輸出文件名和當前行號,q離開more不再顯示
less # 分屏顯示文件內容,根據顯示需要加載內容,適合查看大型文件。空格向下翻一頁,pgup向下翻一頁,pgdn向上翻一頁,/字串向下搜尋字串n向下找N向上找,?字串向上搜尋字串n向上找N向下找,q離開
head -n # 查看文件頭數行內容
tail # 查看文件尾部內容,默認顯示后10行內容
tail -n# 查看文件尾部數行內容
cat 文件名1>文件名2 # 重定向>將命令結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件夾中;>>追加內容
| #管道,把左邊的命令返回的結果交給右邊命令進行處理
find 搜索范圍文件路徑 -name 指定的文件名 # 根據名稱查找搜索范圍下指定格式的文件
find 搜索范圍文件路徑 -user 用戶名 # 根據用戶名查找搜索范圍下用戶名為指定用戶名的文件
find 搜索范圍文件路徑 -size +n # 根據文件大小查找搜索范圍下文件大小大于n的文件(+n:大于,-n:小于,n:等于)
ls | grep -n 原文件 # 查找某文件在第幾行。用ls查找看的時候也要用ls,即兩個要匹配否則行號會出錯
Linux環境使用建議只進行Jmeter場景的執行操作,腳本編寫驗證的過程建議在Windows下完成后上傳到Linux服務器上。
使用目的:防止由于網絡問題導致的壓不上去的問題,由于客戶端資源使用情況導致壓力壓不上去的問題。
jdk環境部署,配置環境變量,驗證安裝是否成功java -version
jmeter環境部署,配置環境變量,驗證安裝是否成功jmeter -v
將本地生成的jmx文件上傳至linux平臺,執行命令:
jmeter -n -t 腳本文件 -l 日志文件 -e -o 指定目錄
DOS命令執行測試腳本生成html格式的測試報告
jmeter -n -t /home/yace/scrpts/data.jml -l result.jtl 生成日志文件可在jmeter GUI界面,聚合 里打開
-n:no-gui,無圖形化界面執行,命令行模式
-t:jmx腳本文件路徑
-l:日志,jtl結果文件存放路徑
-e:生成
-o:指定html報表生成到哪個文件夾下
jmeter -g result.jtl -o report
-g:指定jtl文件路徑
-o:指定html報表生成到哪個個文件夾下
Jmeter自帶了一個生成HTML報表的功能,功能強大,生成的報表中既包含了類似聚合報告中的最終匯總結果,還有各請求的性能曲線圖,包括TPS、響應時間等等。
大多情況下,Jmeter自帶的HTML報表功能已經能滿足我們的需求。但是,此功能有一個比較大的缺陷,那就是性能比較差,換句話說就是分析很慢。TPS越高、執行時間越長、生成的jtl文件越大,分析的越慢。
相比Jmeter自帶的HTML報表,它具備以下優點:
1、統計結果所需時間很短,速度比原生報表快將近30倍。
2、簡化了一些不必要的性能數據統計,保留了核心性能數據,如,TPS統計、平均響應時間、90%、95%、99%響應時間、錯誤率,以及TPS曲線圖、平均響應時間曲線圖。
java -jar jmeter -graph.jar jtl 文件路徑 統計間隔時間(秒)
java -jar jmeter -graph.jar result.jtl 10
ls 查看目錄內容
tar -cvzf 壓縮包包名 文件1 文件2....
-c生成檔案文件,創建打包文件
-v列出歸檔解擋的詳細過程,顯示進度
-f指定檔案文件名稱
-t列出檔案中包含的文件
-x解開檔案文件
-z有gzip屬性的
-j有bz2屬性的
打包,壓縮,解壓,解包
tar –cvf jpg.tar *.jpg // 將目錄里所有jpg文件打包成 jpg.tar
tar –czf jpg.tar.gz *.jpg // 將目錄里所有jpg文件打包成 jpg.tar 后,并且將其用 gzip 壓縮,生成一個 gzip 壓縮過的包,命名為 jpg.tar.gz
tar -zxvf jpg.tar.gz -c batr //解壓
tar –cjf jpg.tar.bz2 *.jpg // 將目錄里所有jpg文件打包成 jpg.tar 后,并且將其用 bzip2 壓縮,生成一個 bzip2 壓縮過的包,命名為jpg.tar.bz2
tar –xjf jpg.tar.bz2 -c jtar //解壓
zip -r zz.zip *.txt //zip -r zz *.txt,zz代表要生成的壓縮文件,不需要擴展名,會自動生成zip擴展名,-r壓縮所有子目錄
unzip -d zz file.zip // 解壓 zip,-d解壓目錄
壓縮率zip<gzip<bzip2
通用性zip>gzip>bzip2
拷貝:cp 1.txt a //將1.txt文件復制到a文件夾下
移動:mv abc.txt a //將abc.txt移動到a文件夾下
cat -n sys.log | tail -n +100000 | head -n 20 #-n顯示行號,查看日志特定行數范圍內容
cat order.log | grep '下單成功' lwc #lwc行數、字數、字節數
1、linux修改hosts
sudo是linux系統中一種很常見的權限管理機制,允許非root用戶以特定的身份執行特定的命令。
由于hosts文件位于系統目錄下,普通用戶無法直接修改。因此,我們需要進入root用戶模式。在終端中輸入以下命令:
sudo su
vi /etc/hosts
修改完hosts文件后,按下Esc鍵退出編輯模式,然后輸入:wq命令保存并退出。
2、網絡檢測 ping www.baidu.com
3、查找文件find、grep
4、查看某日志特定行數范圍內的內容
cat -n sys.log | tail -n +10000 | head -n 20
第一個數字代表日志起始行數 第二個數字代表要看的內容有多少行
cat xiadan.lpg | grep '下單成功' | wc lwc行數字數字節數
引用類型可動態創建屬性(即先創建對象,后添加屬性和方法)。
var obj=new Object();
obj.name=“伍德春”;
如果變量是基本類型值,那么是復制結果,更改其中一個不會影響另一個:
"use strict";
var num1 =5;
var num2 = num1;
num1 =10;
alert(num2);
num1更改為10以后,num2還是5,并不受其影響。
如果變量是引用類型的值,那么兩個變量都指向同一對象(即新復制的變量也是指向同一內存地址的):
var num1 = new Object();
var num2 = num1;
num1.name = "伍德春";
alert(num2.name);
所有函數的參數都是按值傳遞,即基本類型在函數中修改變量的值時,外部原變量不會更改,因為是修改的復制對象;而引用類型由于是指向的同一地址的內容,所以在函數內部修改后,外部的也變化了。
function change(v1) {
v1=10;
}
var v=20;
change(v);
alert(v); // 20
function changeObj(obj){
obj.name="伍德春";
}
var person=new Object();
person.name="李四";
changeObj(person);
alert(person.name);
結果=變量 instanceof 類型
書中描述太復雜了,如果畫兩個圈,外面一個,里面一個,那就是內部可以訪問外部,但外部不能訪問內部。
這兩個語句會改變作用域:try-catch、with
4.3 垃圾收集
4.3.1 標記清除
4.3.2 引用計數
循環引用時會出錯,需要手動斷開,myObject.element=null(許多語言中是手動釋放)
*請認真填寫需求信息,我們會在24小時內與您取得聯系。