区块链通常由点对点网络管理,用作公共分布式账本,其中节点集体遵守协议以通信和验证新块。在分布式网络中,每个节点的边数大致相同,并且节点之间可以连接的路径不止一条。这意味着网络的拓扑不包含处于中心或特权位置的节点,或者如果网络中内置了层次结构,则每个节点都属于多个层次结构。这赋予了分布式网络一个特殊的属性:一些节点的故障仍然使网络保持连接。
“去中心化”是区块链的典型特征之一,其使用分布式储存与算力,整个网络节点的权利与义务相同,系统中数据本质为全网节点共同维护,从而区块链不再依靠于中央处理节点,实现数据的分布式存储、记录与更新。而每个区块链都遵循统一规则,该规则基于密码算法而不是信用证书,且数据更新过程都需用户批准,由此奠定区块链不需要中介与信任机构背书。
static BBox post_process(cv::Mat img,const int size_img,const int w,const int h)
{
//argmax
cv::Mat out=cv::Mat::zeros(size_img,size_img,CV_8U);
for(int h=0;h<size_img;++h){
for(int w=0;w<size_img;++w){
float_t*p=(float_t*)img.ptr(h,w);//prob of a point
out.at<uint8_t>(h,w)=(uint8_t)argmax(p,p+3);
}
}
//
std::vector<std::vector<cv::Point>>contours;
cv::findContours(
out,
contours,
cv::noArray(),
CV_RETR_TREE,
cv::CHAIN_APPROX_SIMPLE
);
cv::Rect boundRect;
区块链技术的核心是分布式网络、加密算法和共识机制。
简单地说,区块链是一个建立在互联网上的公共的账本,互联网上每个人的计算机中,都可以有这样一个账本,这个账本中的数据是完全公开透明的,任何人都可以参与记账和核帐,当你进行交易时,这笔交易就会记录到你们的账本上,而且每个区块的账本都是相同的。
这就从根本上简化了传统的信任机制,不需要有公信度的第三方进行担保。在原来两个互不认识和信任的人要达成协作是很难的,但基于区块链的特性,现在没有任何中介机构参与的情况下,双方也可以实现互信与协作。
//通用内容
const char*mPluginNamespace;
std::string mNamespace;
//以下是自定义的,按需定义、使用
float mEpsilon;
int mNbGroups;
int mChannelVolume;
cudnnHandle_t _cudnn_handle;//这个插件用到了cuDNN库,需要定义这些内容
cudnnTensorDescriptor_t desc,bnDesc;//describes input and output
void*bnScale;
void*bnBias;