我想通过线条(以及将来的文字)自动划分古代手写文字的图像.
我只是使用简单的数字化(基于像素的亮度).之后我将数据存储到二维数组中.
我的第一个算法很简单 - 如果数组的一行中的黑色像素多于最大值和最小值的均方根,则该行是行的一部分.
在形成线条列表后,我切断了高度低于平均值的线条.最后它变成了某种线性回归,试图最小化空行和文本行之间的差异.(我以为这个事实)

我的第二次尝试 - 我尝试使用GA和几个健身功能.染色体包含3个值 - xo,x1,x2.xo [-1; 0] x1 [0; 0.5] x2 [0; 0.5]
确定行到行的同一性的函数是(xo +α1x1+α2x2)> 0,其中α1是行中黑色像素的缩放和,α2是行中极端黑色像素之间的范围的中值.(a1,a2 [0,1])我试过的另一个函数是(x1 <α1或x2>α2)和(1/xo + [a1 x1]/[a2 x2])> 0
最后一个函数是最多的高效.
适应度函数是
(1 /(HeigthRange + SpacesRange))
范围是最大值和最小值之间的差异.它代表了文本的同质性.此功能的全局最佳 - 将图像划分为线条的最平滑方式.
我使用C#和我的自编码GA(经典,2点交叉,灰色代码染色体,最大群体为40,突变率为0.05)
现在我没有想法如何将这个图像分成几行,精度达到100%.
这样做的有效算法是什么?
更新: 原始图像 原始BMP(1.3 MB)
更新2:
将此文本的结果改进为100%

我是怎么做到的:
问题:

GA令人惊讶地未能认识到这一点.我看了'find rages'函数的调试数据,发现在'无法识别'的地方有太多的噪音.功能代码如下:
public double[] Ranges()
{ …Run Code Online (Sandbox Code Playgroud) 昨天我开始探索遗传算法,当我最终得到一些基本理论时,我试图在Python上编写简单的GA,它解决了丢番图方程.我是Python和GA的新手,所以请不要严格判断我的代码.
由于早熟收敛,我不能得到任何结果(有一些无返回点(n-population),population [n] == population [n + i],其中i是任意整数.甚至随机变换元素也无法改变这个,这一代很快就退化了)
GA使用交叉来繁殖,并加权选择父母.
码:
# -*- coding: utf-8 -*-
from random import randint
from copy import deepcopy
from math import floor
import random
class Organism:
#initiate
def __init__(self, alleles, fitness, likelihood):
self.alleles = alleles
self.fitness = fitness
self.likelihood = likelihood
self.result = 0
def __unicode__(self):
return '%s [%s - %s]' % (self.alleles, self.fitness, self.likelihood)
class CDiophantine:
def __init__(self, coefficients, result):
self.coefficients = coefficients
self.result = …Run Code Online (Sandbox Code Playgroud) python artificial-intelligence genetic-programming genetic-algorithm
上传 1-2mb 文件工作正常。当我尝试上传 16mb 文件时,几秒钟后出现 502 错误
更详细:
def upload(request):
if request.method == 'POST':
f = File(data=request.FILES['file'])
f.save()
return redirect(reverse(display), f.id)
else:
return render('filehosting_upload.html', request)
Run Code Online (Sandbox Code Playgroud)
render(template, request [,data]) 是我自己的速记,用于处理一些 ajax 内容;
的filehosting_upload.html:
{% extends "base.html" %}
{% block content %}
<h2>File upload</h2>
<form action="{% url nexus.filehosting.views.upload %}" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="file">
<button type="submit" class="btn">Upload</button>
</form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
我在日志中找不到任何信息。
版本: …