人脸识别方案

  • HTTP跟 socket 协议、tcp/ip协议有什么区别(面试常问),三者的区别和原理
    • 一、了解OSI 网路七层模型:
    • 二、TCP/IP连接的三次握手:
      • 3. 常见面试题:
    • 三、Sokcet原理:
      • 1.socket概念
      • 2.SOCKET连接与TCP/IP连接
      • 3.Socket连接与HTTP连接
    • 四、HTTP

  对于人脸识别我们使用ocr 翔云人工智能开放平台,只要学会了这个以后,我们就可以使用腾讯ai,百度ai,商汤科技等很多平台的人工智能识别相关的东西。因为如果我们自己成立研发部做这个事情的话放在中小型规模的企业和能力成本是很高的而且开发的效率很慢啊做出来的东西不一定会比这些识别平台会更好用。

  这种识别是基于 bs(browser server )的识别,是通过http 协议。所以整个人脸识别的项目不就是通过编程来帮我们完成刚才鼠标点击的这些步骤,让代码帮我们完成这些动作,那同样的我们肯定要让代码发起HTTP的一个请求,因为浏览器的后台就是通过http 请求来获取数据,浏览器只是一个呈现平台,我们要做的事情就是要了解 Linux用 c语言如何实现http 的编程。
  我们用其他的面向对象的语言 java,c++包括python 实现起来很简单,但是如果用我们c语言的话他需要耗费一定的周章而且这个需要大家去掌握这一块的技能。
  那整个开发的流程跟逻辑顺序其实就是我们刚才通过鼠标点击的这样的一个过程,只不过是用代码帮我完成这件事情而已。

HTTP跟 socket 协议、tcp/ip协议有什么区别(面试常问),三者的区别和原理

一、了解OSI 网路七层模型:

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:
7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
6 表示层 例如XDR、ASN.1、SMB、AFP、NCP
5 会话层 例如ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
4 传输层 例如TCP、UDP、RTP、SCTP、SPX、ATP、IL
3 网络层 例如IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25
2 数据链路层 例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP
1 物理层 例如线路、无线电、光纤、信鸽

深入浅出,七层模型

常见的应用层协议:

  由于OSI 是一个理想的模型 ,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。
以下是TCP/IP分层模型
┌────------────┐┌─┬─┬─-┬─┬─-┬─┬─-┬─┬─-┬─┬─-┐
  │        ││D│F│W│F│H│G│T│I│S│U│ │
  │        ││N│I│H│T│T│O│E│R│M│S│其│
  │第四层,应用层 ││S│N│O│P│T│P│L│C│T│E│ │
  │        ││ │G│I│ │P│H│N│ │P│N│ │
  │        ││ │E│S│ │ │E│E│ │ │E│它│
  │        ││ │R│ │ │ │R│T│ │ │T│ │
  └───────------─┘└─┴─┴─-┴─┴─-┴─┴─-┴─┴─-┴─┴-─┘
  ┌───────-----─┐┌─────────-------┬──--------─────────┐
  │第三层,传输层 ││   TCP   │    UDP    │
  └───────-----─┘└────────-------─┴──────────--------─┘
  ┌───────-----─┐┌───----──┬───—─┬────────-------──┐
  │        ││     │ICMP│          │
  │第二层,网间层 ││     └──—──┘          │
  │        ││       IP            │
  └────────-----┘└────────────────────-------------─-┘
  ┌────────-----┐┌─────────-------┬──────--------─────┐
  │第一层,网络接口││ARP/RARP │    其它     │
  └────────------┘└─────────------┴─────--------──────┘

二、TCP/IP连接的三次握手:

  1. 握手过程(重点)
      tcp 是点对点准确的连接
      第一次握手是由客户端主动打开的,服务器是被动的,所谓的主动状态连接肯定是由客户端发起的;就像我们写socket 编程一样 客户端不断的 accept ,服务端不断的connect ,虽然socket 基于tcp 之上但是原理类似。那怎么发起连接呢?
       客户端会发一个 SYN =1,代表我来了,并且我带着一个seq 来了;那服务器怎么知道你来了呢?它会回一个SYN 并且带给你一个ACK和 ack 证明它知道你来了;然后客户端也会回一个 ACK 和ack 来进行连接。

面试的时候画给面试官看,或者去提 SYN 和ACK

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

  1. 断开过程(四次挥手)
       客户端去主动关闭,发一个FIN ,在服务器这块它是多发了一次,为什么多发一次?因为服务器有可能在跟其他的数据进行通信,来不及回复这个客户端,又不能让他久等,所以回一个我知道了(ACK)等我处理完这里再来和你正式通信(FIN)。
3. 常见面试题:

【问题1】为什么连接的时候是三次握手,关闭的时候却是四次握手?

答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
【问题4】如果已经建立了连接,但是客户端突然出现故障了怎么办?

TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。

三、Sokcet原理:

1.socket概念

  套接字(socket)是通信的基石,是支持TCP/IP网络通信的基本操作单元。也就是说你要操作TCP/IP,编程的话无法直接使用代码操作到它(因为没有像tcp_create 之类的Api)只能通过Sokcet来操作。它是网络通信过程中端点的抽象表示,已经算是最小单元了,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。(即socket 编程中的bind 函数)

  应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
  上述提到的并发服务就是我们做的ftp 云盘 server 端的有客户端接入进来时创建进程或线程来运行这个客户端,并且可以持续的接收客户端。这种架构时在UNIX环境高级编程(尤晋元 译)这本书中有提到。
总结:socket 是通信的基石,你想用TCP/IP 的一个最小单元就是socket,可以理解为 socket 是TCP/IP 的一个封装

2.SOCKET连接与TCP/IP连接

  创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

  socket则是对TCP/IP协议的封装和应用(程序员层面上)。

  “我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如
果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也
可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”

  上述这段话的意思,A同学和B同学对话,A说汉语,B说英语,他们互相能听到但听不懂,这些协议就能够让他们听懂对方说的话。去约定双方用同一个语言,去约定用相应的数据格式。所谓的协议就是跟数据格式挂钩,抽象出来就是 格式+速度;就比如串口,波特率是它的速度,格式:规定数据位和奇偶校验位。
  这样我们就能区分开了,HTTP 是协议是统一格式;TCP协议是HTTP 的底层能够进行数据的收发 ,browser 和 server 只能发送/接收数据没有统一的数据格式,所以基于bs模式我们采用http 这样的一种格式;socket 是tcp 的封装本身不是协议,只是一个调用接口。是程序员进行tcp/ip 编程的最小单位。

  两个计算机进行网络通讯时,用tcp协议就够了,就能发数据,双方也能收到对方的数据,但是仅仅收到数据无法解析数据。比如说http 就解决了浏览器和服务器之间的通信协议的数据格式的解析。

3.Socket连接与HTTP连接

由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。

很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接
将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端(比如使用百度有新内容需要刷新或者再点一下搜索),因此,客户端定时向服务器端发送连接请
求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

http协议是应用层的协义

有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

两个计算机之间的交流无非是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同的应用层协议来定义的如HTTP、FTP`…

四、HTTP

  HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

  HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

  由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”(socket 是长连接,连接一次2小时,详情看前面面试题),要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。
通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。
若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
  我们在工作中会用到心跳包,比如控制小车的命令有 f(forward)、b(backward)、L、R,当两个小时没有动他时,我们可以发一个m指令,这个指令没有任何意义只是为了延续连接。

人脸识别方案(包含tcp ,http,socket 三者的区别)相关推荐

  1. 人脸识别与膜虹识别_虹膜识别vs指纹识别vs人脸识别:从三星S8看三者的区别!...

    三星S8号称提供五种解锁方式,解锁姿势突出一个丰富,其中虹膜识别.指纹识别和人脸识别都属于生物识别技术.比起传统的绘制图案和密码解锁,他们应用在手机上更加安全和方便,三星为了展示实力也一股脑将他们全都 ...

  2. 一文搞懂人脸识别那点事---人脸识别方案summary

    The Summary Of Face Recognition [全文共计7162字,预计阅读15分钟,消耗脑容量20MB] 人脸识别包含人脸检测.人脸对齐.人脸识别三个步骤. 首先利用人脸检测(Fa ...

  3. 每周AI应用方案精选:虹膜识别;基于深度学习人脸识别方案等

    2019-12-12 17:52:41 每周三期,详解人工智能产业解决方案,让AI离你更近一步. 解决方案均选自机器之心Pro行业数据库. 方案1:虹膜识别解决方案 解决方案简介: 虹膜识别技术是基于 ...

  4. Android离线人脸识别方案对比

    Android 离线人脸识别方案对比总结 文章目录 Android 离线人脸识别方案对比总结 百度.腾讯.阿里.Face++.商汤等人脸识别 虹软人脸识别 OpenCV 人脸识别 中科视拓(Seeta ...

  5. 力天创见无感人脸识别方案

    力天创见无感人脸识别方案,通过在过道或入口处设置监控摄像头(内置人脸识别芯片),当人员通过时,人脸识别镜头可以抓取人脸并实时上传服务器,对抓取的人脸进行识别,通过后台人脸识别算法,给出年龄和性别等信息 ...

  6. 银行会员人脸识别方案

    一.方案概述 VIP客户是各家银行的重要客户资源,每家银行都在不断创新服务吸引VIP客户开通存款.贷款.投资理财等业务.新的业务容易开通,但如何更好的服务这些VIP客户,提高留存率是目前各银行不断思考 ...

  7. Android 离线人脸识别方案总结

    百度.腾讯.阿里.Face++.商汤等人脸识别 Face++人脸识别介绍 商汤人脸识别介绍 以上均采用设备数或QPS数付费授权 虹软人脸识别 介绍地址:https://ai.arcsoft.com.c ...

  8. 那些你不知道的RK3288人脸识别方案

    人脸识别测温门禁,配有功能丰富的测温门禁管理软件,自动上传测温.门禁.考勤数据,可联动通道闸控制进出,软件后台灵活设置开闸条件.测温.刷脸参数等,实现实时查询考勤时间.测温数据.出入记录,自动形成测温 ...

  9. 人脸识别服务器型号,人脸识别服务器,人脸识别接口,人脸识别方案定制开发

    1.简述 1.1 DWFACE人脸识别SDK 由dwface和www两个文件夹内程序组成. 1.2 dwface实现人脸识别算法,是人脸识别核心引擎. 1.3 www 是B/S架构下与底层dwface ...

最新文章

  1. DARPA 2020财年研发预算 人工智能应用研究投资急剧增长
  2. PXE自动化装机(4)
  3. double free
  4. 【译】Pure Proof-of-Stake Blockchains: Secure Blockchain Decentralization via Committees
  5. 解决 Tomcat 下 getInitParameter 返回 null
  6. centos+bond+bridge+docker(ssh容器)固定ip实现测试环境(一)
  7. C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)
  8. [读书笔记]读《Effective Objective-C 2.0编写高质量iOS与OS X代码的52个有效方法》(一)...
  9. hdoj--5620--KK's Steel(斐波那契数)
  10. android禁止电话功能,#Android# 启用“阻止模式”功能,避免半夜电话骚扰!
  11. ev3编程 越野机器人_乐高机器人EV3,让机器人动起来
  12. Java计算机毕业设计单车商城源码+系统+数据库+lw文档
  13. 中国的KNX 智能家居系统,将实现最高级别的安全保障!
  14. 基于Python将图片转换成素描图片
  15. 知识推理——正向链接推理
  16. 什么是php微信开发,php微信公众号开发模式详解
  17. LVGL hal disp(porting display)
  18. 电话簿程序设计c语言,电话簿管理程序设计.doc
  19. Mybatis类型转换器使用
  20. 赵小楼《天道》《遥远的救世主》深度解析(122)好事、坏事是人性喜好认为,剥离好坏的认知你会更宽广

热门文章

  1. 经典算法题-球和篮子
  2. 读《从一到无穷大》之后感
  3. SQL如何判断某一天是当月第几周的问题
  4. traceroute的工作原理
  5. MPAndroidChart 饼状图 文字重叠问题完美解决
  6. PHP实现水仙花算法
  7. let const var 区别详解
  8. Go基础:常见的json包--encoding/json、easyjson、ffjson、json-iterator/go
  9. 推荐一些比较好的代码编辑器
  10. 持续性混吃等死,间歇性踌躇满志 --转自头条