在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何制作監控攝像機

454398 ? 來源:wv ? 2019-09-03 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:我們需要什么

物理計算

Arduino Uno(或另一個工作的微控制器

伺服(我使用parralax標準伺服)

Red led

220k電阻

5x電線

Javascript

P5.js

P5 DOM庫

P5串行庫

P5串行控制(處理串行通信的小程序)

ML5.js

對象

MDF 4mm

底漆噴涂

白色噴漆

淺灰色噴涂油漆

黑色噴漆

黑色太陽鏡鏡片(或其他)

第2步:進行姿勢估計工作

如何制作監控攝像機

首先我們要編寫識別人類的草圖并在它的鼻子上放一個點。目標是從這一點獲取水平X數據并將其發送到Arduino。

讓我們開始吧!

在這個項目中,我們需要一些文件或庫來使一切正常工作:

p5.js (您可以下載完整的軟件包,因為這包括DOM庫)

p5 DOM

p5串口(我使用了包中包含的示例中的p5.serialport.js文件) )

ML5.js(您可以將其作為鏈接包含在內,或者您可以通過這種方式下載整個本地庫,這樣您就不需要連接互聯網以使一切正常工作)

我們擁有所有這些,我們可以將所有內容鏈接到一個簡單的HTML文件中:

接下來是我們的sketch.js文件,其中所有的魔法都發生了!

var serial;

var portName = ‘COM6’; // fill in your serial port name here, you can check the right port in Arduino or P5 serial control

var options = {

baudrate: 19200 //baudrate has to be the same in arduino

};

// this is the message that will be sent to the Arduino:

var oneMessage;

let video;

let poseNet;

let poses = [];

var noseX = []

var ifPerson = true;

//var flipHorizontal = false;

function setup() {

createCanvas(640, 480);

video = createCapture(VIDEO);

video.size(width, height);

frameRate(10);

//--------------------------------------

serial = new p5.SerialPort();

// Get a list the ports available

// You should have a callback defined to see the results. See gotList, below:

serial.list();

// Assuming our Arduino is connected, open the connection to it

serial.open(portName, options);

// When you get a list of serial ports that are available

serial.on(‘list’, gotList);

// When you some data from the serial port

serial.on(‘data’, gotData);

//-----------------------------------------

// Create a new poseNet method with a single detection

poseNet = ml5.poseNet(video, {

flipHorizontal: true,

detectionType: ‘single’

}, modelReady);

// This sets up an event that fills the global variable “poses”

// with an array every time new poses are detected

poseNet.on(‘pose’, function (results) {

poses = results;

if (results.length == 0) {

ifPerson = false;

}

//console.log(‘results: ’ + results);

});

// Hide the video element, and just show the canvas

video.hide();

}

function modelReady() {

select(‘#status’).html(‘Model Loaded’);

}

function draw() {

image(video, 0, 0, width, height);

// We can call both functions to draw all keypoints

drawKeypoints();

if (ifPerson == false) {

serial.write(‘c’);

console.log(“X”);

ifPerson = true;

} else {

oneMessage = map(oneMessage, 1, 640, 65, 115);

serial.write(oneMessage);

console.log(“browser: ” + oneMessage);

}

}

//---------------------------------

// Got the list of ports

function gotList(thelist) {

console.log(“List of Serial Ports:”);

// theList is an array of their names

for (var i = 0; i 《 thelist.length; i++) {

// Display in the console

console.log(i + “ ” + thelist[i]);

}

}

// Called when there is data available from the serial port

function gotData() {

var currentString = serial.readLine();

console.log(currentString);

}

//-------------------------------------

// A function to draw ellipses over the detected keypoints

function drawKeypoints() {

// Loop through all the poses detected

for (let i = 0; i 《 poses.length; i++) {

// For each pose detected, loop through all the keypoints

for (let j = 0; j 《 poses[i].pose.keypoints.length; j++) {

// A keypoint is an object describing a body part (like rightArm or leftShoulder)

let keypoint = poses[i].pose.keypoints[“0”];

noseX[i] = keypoint.position.x.toFixed(0);

oneMessage = (parseInt(noseX[0],10));

//console.log(typeof(oneMessage));

select(‘#noseX_1’).html(noseX.toString());

//console.log(typeof(oneMessage))

// Only draw an ellipse is the pose probability is bigger than 0.2

if (keypoint.score 》 0.2) {

fill(255, 0, 0);

noStroke();

ellipse(keypoint.position.x, keypoint.position.y, 10, 10);

}

}

}

}

就是這樣!如果您打開html文件,您將看到網絡攝像頭鏡頭上方有一個紅點但鏡像(否則您的伺服將遠離您)。您還將看到發送到Arduino的X數據

第3步:使用P5.serialcontrol

這是一個快速的。為了建立我的草圖和Arduino之間的串行通信,我們需要一個處理所有串行數據的中間人將它發送到另一個。以前人們會使用不太友好的Node.js,p5.serialcontrol修復了這個問題。你可以在這里下載p5.serialcontrol。對于Windows用戶,請查看Alpha 5版本。

可悲的是,p5.serialcontrol并不完美,有時會崩潰。所以要小心你發送了多少數據。

步驟4:一切Arduino

接下來是Arduino代碼并連接伺服和LED。

#include

Servo myservo;

const int redPin = 12;

int newval1, oldval1;

int servoValue;

int space = 2;

int ledState = LOW;

int pos = 0;

unsigned long currentMillis = 0; // stores the value of millis() in each iteration of loop()

unsigned long previousServoMillis = 0; // the time when the servo was last moved

unsigned long previousMillis = 0;

const long interval = 500;

int servoPosition = 90;

int servoSlowInterval = 60; // millisecs between servo moves

int servoFastInterval = 10;

int servoInterval = servoSlowInterval; // initial millisecs between servo moves

int servoDegrees = 2; // amount servo moves at each step

int servoMinDegrees = 45; // will be changed to negative value for movement in the other direction

int servoMaxDegrees = 135;

int increment; // increment to move for each interval

int updateInterval; // interval between updates

unsigned long lastUpdate; // last update of position

int counter = 0;

bool executed = false;

void servoSweep() {

if (currentMillis - previousServoMillis 》= servoInterval) {

previousServoMillis += servoInterval;

servoPosition = servoPosition + servoDegrees; // servoDegrees might be negative

if (servoPosition 《= servoMinDegrees) {

// when the servo gets to its minimum position change the interval to change the speed

if (servoInterval == servoSlowInterval) {

servoInterval = servoSlowInterval; //servoFastInterval

}

else {

servoInterval = servoSlowInterval;

}

}

if ((servoPosition 》= servoMaxDegrees) || (servoPosition 《= servoMinDegrees)) {

// if the servo is at either extreme change the sign of the degrees to make it move the other way

servoDegrees = - servoDegrees; // reverse direction

// and update the position to ensure it is within range

servoPosition = servoPosition + servoDegrees;

}

// make the servo move to the next position

myservo.write(servoPosition);

digitalWrite(redPin, LOW);

// and record the time when the move happened

}

void ledBlink () {

if (currentMillis - previousMillis 》= interval) {

previousMillis = currentMillis;

if (ledState == LOW) {

ledState = HIGH;

} else {

ledState = LOW;

}

digitalWrite(redPin, ledState);

}

}

void setup() {

myservo.attach(9); // servo

Serial.begin(19200); // initialize serial communication

//Serial.setTimeout(10);

pinMode(redPin, OUTPUT);

myservo.write(90);

}

void loop() {

currentMillis = millis();

if (executed == false) {

servoSweep();

delay(50);

}

}

void serialEvent () {

while (Serial.available()) {

newval1 = Serial.read(); //read it

//Serial.println(newval1);

if (newval1 》 0 && newval1 != ‘c’) {

executed = true;

ledBlink();

//if (newval1 《 (oldval1 - space) || newval1 》 (oldval1 + space)) { //dead band setup

myservo.write(newval1);

delay(15);

//oldval1 = newval1;

//}

}

if (newval1 == ‘c’) {

executed = false;

}

}

}

正如您所看到的,我使用了不使用delay()的代碼,因此可以隨時停止掃描功能,即如果某人被識別。

在此之后,您可以測試整個系統。首先插入你的Arduino與led和伺服(我在我的箭頭上進行測試),然后啟動p5.serialcontrol然后打開html文件。如果一切正常,箭頭將始終指向您。如果您走出網絡攝像頭捕獲的圖像,伺服將掃描。

第5步:制作安全攝像頭

所有這些軟件和代碼都讓我們開始制作東西!

我模仿了安全攝像頭的這個原型,并為激光切割機設計了它。我用木膠組裝了這些碎片。相機內部有足夠的空間容納Arduino,它需要一些額外的孔才能將所有電線都放入其中。我還將LED放置在正確的位置,并在前面安裝了黑色鏡頭,以提供額外的安全攝像頭效果。我用一些塑料薄膜消除了led燈的光線。

接下來,我準備整個事情并用典型的安全攝像頭顏色繪制它。

步驟6:安裝備注

關于在某處設置此安裝的最后一些評論。安全攝像頭本身沒有攝像頭攝像頭,可以看到前面的人。我所做的是將網絡攝像頭隱藏在支柱中并在其前面放置一個帶孔的海報,以隱藏相機,這對于創造正確的效果至關重要。

您還可以做的就是放置相機處于一個更典型的安全攝像頭位置,就像掛在天花板或墻壁上一樣。但你可以用它做任何你想做的事!

第7步:結束結果

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 監控攝像機
    +關注

    關注

    0

    文章

    47

    瀏覽量

    12777
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    電動升降桅桿 戶外可移動升降桿 監控照明攝像機伸縮支架

    攝像機
    jf_14142521
    發布于 :2025年07月10日 19:05:19

    索尼攝像機系統的應用功能

    節目制作系統快速發展,索尼系統攝像機始終立于技術前沿,不斷推陳出新,助力實現用戶日益多元的需求。系統攝像機有一些和系統相關的非常規功能,屬于資深工程師嚴選推薦,以下讓我們一同探尋這些深度(秘密)的系統應用功能。
    的頭像 發表于 05-06 09:45 ?395次閱讀
    索尼<b class='flag-5'>攝像機</b>系統的應用功能

    安森美圖像傳感器在安防和監控攝像機中的應用

    安防和監控攝像機是現代安防系統不可或缺的一部分,在監控和記錄活動以加強安全和遏制犯罪方面發揮著至關重要的作用。這些系統部署在各種環境中,包括住宅區、商業地產、工業場所和公共場所,以對場所進行警示監視。本文將為您介紹安防和
    的頭像 發表于 04-07 09:33 ?804次閱讀

    索尼推出首款攝像機跟蹤系統OCELLUS

    近日,索尼(中國)有限公司推出索尼首款攝像機跟蹤系統OCELLUS(ASR-CT1),該系統通過多個傳感器實現無標記攝像機跟蹤,旨在簡化和促進影視和廣電領域的增強現實(AR)和虛擬制作應用。OCELLUS適用于各種
    的頭像 發表于 03-19 16:52 ?539次閱讀

    什么是多光譜智能光譜監控攝像機,它的用途是什么?

    在環境監測領域,傳統的RGB攝像頭已無法滿足日益增長的精細化、智能化需求。SVC多光譜智能光譜監控攝像機應運而生,以其獨特的多光譜成像技術和強大的功能,為農業、林業、生態環境等領域帶來革命性的變化
    的頭像 發表于 02-20 18:07 ?673次閱讀

    AI智能識別監測攝像機

    隨著人工智能技術的飛速發展,AI智能識別監測攝像機逐漸成為各行各業安全管理的重要工具。這種高科技設備不僅具備傳統監控攝像機的基本功能,還通過深度學習和圖像處理等先進技術,實現了對人、車、物體及行為
    的頭像 發表于 11-28 10:39 ?938次閱讀
    AI智能識別監測<b class='flag-5'>攝像機</b>

    SONY模組FCB-EV9500L一體化攝像機:安防監控領域的新標桿

    在當今的安防監控領域,高清、智能、穩定的攝像機成為了市場的核心需求。SONY模組FCB-EV9500L一體化攝像機憑借其卓越的性能和先進的技術,脫穎而出,成為了眾多安防監控項目的首選。
    的頭像 發表于 11-20 11:12 ?616次閱讀

    MS41928M——網絡攝像機·監控攝像機用鏡頭驅動芯片(內置光圈控制)

    MS41928M 是一款用于網絡攝像機監控攝像機的鏡頭驅動芯片。芯片內置光圈控制功能;通過電壓驅動方式以及扭矩紋波修正技術,實現了超低噪聲微步驅動。提供方案和FAE支持,歡迎咨詢了解
    的頭像 發表于 11-18 11:58 ?1193次閱讀
    MS41928M——網絡<b class='flag-5'>攝像機</b>·<b class='flag-5'>監控</b><b class='flag-5'>攝像機</b>用鏡頭驅動芯片(內置光圈控制)

    AI圖像識別攝像機

    ?AI圖像識別攝像機是一種集成了先進算法和深度學習模型的智能監控設備。這些攝像機不僅能夠捕捉視頻畫面,還能實時分析和處理所拍攝的內容,從而實現對特定對象、場景或行
    的頭像 發表于 11-08 10:38 ?844次閱讀
    AI圖像識別<b class='flag-5'>攝像機</b>

    MS41908M——網絡攝像機·監控攝像機用鏡頭驅動芯片

    用于攝像機用鏡頭聚焦、變倍、自動光圈驅動,提供FAE支持
    的頭像 發表于 10-19 17:00 ?1069次閱讀
    MS41908M——網絡<b class='flag-5'>攝像機</b>·<b class='flag-5'>監控</b><b class='flag-5'>攝像機</b>用鏡頭驅動芯片

    車輛沖洗監測攝像機

    車輛沖洗監測攝像機是一種結合了監控攝像技術和智能分析技術的先進設備,旨在通過實時監測和分析車輛沖洗過程中的情況,識別是否存在異?;騿栴},并及時發出警報通知相關人員。這種攝像機在汽車服務
    的頭像 發表于 09-29 10:37 ?544次閱讀
    車輛沖洗監測<b class='flag-5'>攝像機</b>

    戴頭盔識別攝像機

    戴頭盔識別攝像機是一種結合了人工智能技術和監控攝像技術的先進設備,旨在通過實時監測和分析監控畫面中的人員頭部狀態信息,識別是否有人未佩戴安全頭盔,并及時發出警報提醒相關人員。這種
    的頭像 發表于 09-19 10:06 ?699次閱讀
    戴頭盔識別<b class='flag-5'>攝像機</b>

    防跌倒識別攝像機

    防跌倒識別攝像機是一種結合了人工智能技術和監控攝像技術的先進設備,旨在通過實時監測和分析監控畫面中的行為動作,及時發現并預防跌倒事件的發生。這種攝像
    的頭像 發表于 09-09 10:52 ?783次閱讀
    防跌倒識別<b class='flag-5'>攝像機</b>

    行為分析智能監測攝像機

    行為分析智能監測攝像機是一種結合了人工智能和機器學習技術的智能設備,能夠實時監測目標區域內的行為動態,并通過分析和識別行為特征來提供安全監控和管理。這種攝像機在安防領域、智能交通和智能家居等領域有著
    的頭像 發表于 08-21 10:14 ?677次閱讀
    行為分析智能監測<b class='flag-5'>攝像機</b>

    水位自動識別攝像機

    管理等方面提供有力支持。優勢與特點水位自動識別攝像機是一種結合了攝像監控技術和圖像識別技術的設備,它能夠通過拍攝、分析水面影像,自動識別水位的高低,并實時上傳數據到監測
    的頭像 發表于 07-31 10:34 ?753次閱讀
    水位自動識別<b class='flag-5'>攝像機</b>
    主站蜘蛛池模板: 久久国产精品岛国搬运工 | 小说区v天堂网 | 色色免费 | 欧美黄色片网站 | 五月婷婷综合激情 | 午夜操操操| 国产免费高清在线精品一区 | 成人午夜免费视频毛片 | 欧美在线视 | 欧美黄色一级视频 | 岬奈奈美在线 国产一区 | 亚洲成年网站 | 欧美成人自拍视频 | 婷婷四房综合激情五月性色 | 欧美a欧美 | 精品国产乱码一区二区三区 | 井野雏田小樱天天被调教 | 亚洲国产婷婷香蕉久久久久久 | 黄 在线| 日本免费不卡在线一区二区三区 | 黄色网免费观看 | 五月婷婷综合在线 | 一级毛片看真人在线视频 | 一区在线观看视频 | 亚洲吊丝网 | 人人澡 人人澡 人人看 | 婷婷九月 | 国产在线精品香蕉综合网一区 | 三级黄色在线观看 | 午夜性a一级毛片 | aaaa欧美高清免费 | 精品色图 | 亚洲男人精品 | 黄色a网站| 看视频免费网址 | 男男生子大肚play做到生 | www视频在线观看天堂 | 天天精品视频 | 韩国r天堂 | 亚洲精品黄色 | 欧美精品成人久久网站 |