Curious about the best AI photo editor? An AI photo editor is software that uses machine learning to help you get more done — it combines speed, accuracy, and an interface that just works. Hands-on testing shows real-world results vary, so a short free trial is the smartest way to decide. Whether you are a beginner or a pro, the right AI photo editor slots into your workflow and pays for itself fast. This guide breaks down the top picks, their pros and cons, and who each one is best for.
Shape context
Shape context is a feature descriptor used in object recognition. Serge Belongie and Jitendra Malik proposed the term in their paper "Matching with Shape Contexts" in 2000. == Theory == The shape context is intended to be a way of describing shapes that allows for measuring shape similarity and the recovering of point correspondences. The basic idea is to pick n points on the contours of a shape. For each point pi on the shape, consider the n − 1 vectors obtained by connecting pi to all other points. The set of all these vectors is a rich description of the shape localized at that point but is far too detailed. The key idea is that the distribution over relative positions is a robust, compact, and highly discriminative descriptor. So, for the point pi, the coarse histogram of the relative coordinates of the remaining n − 1 points, h i ( k ) = # { q ≠ p i : ( q − p i ) ∈ bin ( k ) } {\displaystyle h_{i}(k)=\#\{q\neq p_{i}:(q-p_{i})\in {\mbox{bin}}(k)\}} is defined to be the shape context of p i {\displaystyle p_{i}} . The bins are normally taken to be uniform in log-polar space. The fact that the shape context is a rich and discriminative descriptor can be seen in the figure below, in which the shape contexts of two different versions of the letter "A" are shown. (a) and (b) are the sampled edge points of the two shapes. (c) is the diagram of the log-polar bins used to compute the shape context. (d) is the shape context for the point marked with a circle in (a), (e) is that for the point marked as a diamond in (b), and (f) is that for the triangle. As can be seen, since (d) and (e) are the shape contexts for two closely related points, they are quite similar, while the shape context in (f) is very different. For a feature descriptor to be useful, it needs to have certain invariances. In particular it needs to be invariant to translation, scaling, small perturbations, and, depending on the application, rotation. Translational invariance comes naturally to shape context. Scale invariance is obtained by normalizing all radial distances by the mean distance α {\displaystyle \alpha } between all the point pairs in the shape although the median distance can also be used. Shape contexts are empirically demonstrated to be robust to deformations, noise, and outliers using synthetic point set matching experiments. One can provide complete rotational invariance in shape contexts. One way is to measure angles at each point relative to the direction of the tangent at that point (since the points are chosen on edges). This results in a completely rotationally invariant descriptor. But of course this is not always desired since some local features lose their discriminative power if not measured relative to the same frame. Many applications in fact forbid rotational invariance e.g. distinguishing a "6" from a "9". == Use in shape matching == A complete system that uses shape contexts for shape matching consists of the following steps (which will be covered in more detail in the Details of Implementation section): Randomly select a set of points that lie on the edges of a known shape and another set of points on an unknown shape. Compute the shape context of each point found in step 1. Match each point from the known shape to a point on an unknown shape. To minimize the cost of matching, first choose a transformation (e.g. affine, thin plate spline, etc.) that warps the edges of the known shape to the unknown (essentially aligning the two shapes). Then select the point on the unknown shape that most closely corresponds to each warped point on the known shape. Calculate the "shape distance" between each pair of points on the two shapes. Use a weighted sum of the shape context distance, the image appearance distance, and the bending energy (a measure of how much transformation is required to bring the two shapes into alignment). To identify the unknown shape, use a nearest-neighbor classifier to compare its shape distance to shape distances of known objects. == Details of implementation == === Step 1: Finding a list of points on shape edges === The approach assumes that the shape of an object is essentially captured by a finite subset of the points on the internal or external contours on the object. These can be simply obtained using the Canny edge detector and picking a random set of points from the edges. Note that these points need not and in general do not correspond to key-points such as maxima of curvature or inflection points. It is preferable to sample the shape with roughly uniform spacing, though it is not critical. === Step 2: Computing the shape context === This step is described in detail in the Theory section. === Step 3: Computing the cost matrix === Consider two points p and q that have normalized K-bin histograms (i.e. shape contexts) g(k) and h(k). As shape contexts are distributions represented as histograms, it is natural to use the χ2 test statistic as the "shape context cost" of matching the two points: C S = 1 2 ∑ k = 1 K [ g ( k ) − h ( k ) ] 2 g ( k ) + h ( k ) {\displaystyle C_{S}={\frac {1}{2}}\sum _{k=1}^{K}{\frac {[g(k)-h(k)]^{2}}{g(k)+h(k)}}} The values of this range from 0 to 1. In addition to the shape context cost, an extra cost based on the appearance can be added. For instance, it could be a measure of tangent angle dissimilarity (particularly useful in digit recognition): C A = 1 2 ‖ ( cos ( θ 1 ) sin ( θ 1 ) ) − ( cos ( θ 2 ) sin ( θ 2 ) ) ‖ {\displaystyle C_{A}={\frac {1}{2}}{\begin{Vmatrix}{\dbinom {\cos(\theta _{1})}{\sin(\theta _{1})}}-{\dbinom {\cos(\theta _{2})}{\sin(\theta _{2})}}\end{Vmatrix}}} This is half the length of the chord in unit circle between the unit vectors with angles θ 1 {\displaystyle \theta _{1}} and θ 2 {\displaystyle \theta _{2}} . Its values also range from 0 to 1. Now the total cost of matching the two points could be a weighted-sum of the two costs: C = ( 1 − β ) C S + β C A {\displaystyle C=(1-\beta )C_{S}+\beta C_{A}\!\,} Now for each point pi on the first shape and a point qj on the second shape, calculate the cost as described and call it Ci,j. This is the cost matrix. === Step 4: Finding the matching that minimizes total cost === Now, a one-to-one matching π ( i ) {\displaystyle \pi (i)} that matches each point pi on shape 1 and qj on shape 2 that minimizes the total cost of matching, H ( π ) = ∑ i C ( p i , q π ( i ) ) {\displaystyle H(\pi )=\sum _{i}C\left(p_{i},q_{\pi (i)}\right)} is needed. This can be done in O ( N 3 ) {\displaystyle O(N^{3})} time using the Hungarian method, although there are more efficient algorithms. To have robust handling of outliers, one can add "dummy" nodes that have a constant but reasonably large cost of matching to the cost matrix. This would cause the matching algorithm to match outliers to a "dummy" if there is no real match. === Step 5: Modeling transformation === Given the set of correspondences between a finite set of points on the two shapes, a transformation T : R 2 → R 2 {\displaystyle T:\mathbb {R} ^{2}\to \mathbb {R} ^{2}} can be estimated to map any point from one shape to the other. There are several choices for this transformation, described below. ==== Affine ==== The affine model is a standard choice: T ( p ) = A p + o {\displaystyle T(p)=Ap+o\!} . The least squares solution for the matrix A {\displaystyle A} and the translational offset vector o is obtained by: o = 1 n ∑ i = 1 n ( p i − q π ( i ) ) , A = ( Q + P ) t {\displaystyle o={\frac {1}{n}}\sum _{i=1}^{n}\left(p_{i}-q_{\pi (i)}\right),A=(Q^{+}P)^{t}} Where P = ( 1 p 11 p 12 ⋮ ⋮ ⋮ 1 p n 1 p n 2 ) {\displaystyle P={\begin{pmatrix}1&p_{11}&p_{12}\\\vdots &\vdots &\vdots \\1&p_{n1}&p_{n2}\end{pmatrix}}} with a similar expression for Q {\displaystyle Q\!} . Q + {\displaystyle Q^{+}\!} is the pseudoinverse of Q {\displaystyle Q\!} . ==== Thin plate spline ==== The thin plate spline (TPS) model is the most widely used model for transformations when working with shape contexts. A 2D transformation can be separated into two TPS function to model a coordinate transform: T ( x , y ) = ( f x ( x , y ) , f y ( x , y ) ) {\displaystyle T(x,y)=\left(f_{x}(x,y),f_{y}(x,y)\right)} where each of the ƒx and ƒy have the form: f ( x , y ) = a 1 + a x x + a y y + ∑ i = 1 n ω i U ( ‖ ( x i , y i ) − ( x , y ) ‖ ) , {\displaystyle f(x,y)=a_{1}+a_{x}x+a_{y}y+\sum _{i=1}^{n}\omega _{i}U\left({\begin{Vmatrix}(x_{i},y_{i})-(x,y)\end{Vmatrix}}\right),} and the kernel function U ( r ) {\displaystyle U(r)\!} is defined by U ( r ) = r 2 log r 2 {\displaystyle U(r)=r^{2}\log r^{2}\!} . The exact details of how to solve for the parameters can be found elsewhere but it essentially involves solving a linear system of equations. The bending energy (a measure of how much transformation is needed to align the points) will also be easily obtained. ==== Regularized TPS ==== The TPS formulation above has exact matching requirement for the pairs of points on the two shapes. For noisy data, it is best to
Evolutionary acquisition of neural topologies
Evolutionary acquisition of neural topologies (EANT/EANT2) is an evolutionary reinforcement learning method that evolves both the topology and weights of artificial neural networks. It is closely related to the works of Angeline et al. and Stanley and Miikkulainen. Like the work of Angeline et al., the method uses a type of parametric mutation that comes from evolution strategies and evolutionary programming (now using the most advanced form of the evolution strategies CMA-ES in EANT2), in which adaptive step sizes are used for optimizing the weights of the neural networks. Similar to the work of Stanley (NEAT), the method starts with minimal structures which gain complexity along the evolution path. == Contribution of EANT to neuroevolution == Despite sharing these two properties, the method has the following important features which distinguish it from previous works in neuroevolution. It introduces a genetic encoding called common genetic encoding (CGE) that handles both direct and indirect encoding of neural networks within the same theoretical framework. The encoding has important properties that makes it suitable for evolving neural networks: It is complete in that it is able to represent all types of valid phenotype networks. It is closed, i.e. every valid genotype represents a valid phenotype. (Similarly, the encoding is closed under genetic operators such as structural mutation and crossover.) These properties have been formally proven. For evolving the structure and weights of neural networks, an evolutionary process is used, where the exploration of structures is executed at a larger timescale (structural exploration), and the exploitation of existing structures is done at a smaller timescale (structural exploitation). In the structural exploration phase, new neural structures are developed by gradually adding new structures to an initially minimal network that is used as a starting point. In the structural exploitation phase, the weights of the currently available structures are optimized using an evolution strategy. == Performance == EANT has been tested on some benchmark problems such as the double-pole balancing problem, and the RoboCup keepaway benchmark. In all the tests, EANT was found to perform very well. Moreover, a newer version of EANT, called EANT2, was tested on a visual servoing task and found to outperform NEAT and the traditional iterative Gauss–Newton method. Further experiments include results on a classification problem.
Darwin among the Machines
"Darwin among the Machines" is a letter to the editor published in The Press newspaper on 13 June 1863 in Christchurch, New Zealand. The title, which was chosen by the author, references the work of Charles Darwin. Written by Samuel Butler but signed Cellarius, the letter raised the possibility that machines were a kind of "mechanical life" undergoing constant evolution, and that eventually machines might supplant humans as the dominant species. == Book of the Machines == Butler developed this and subsequent articles into The Book of the Machines, three chapters of Erewhon, published anonymously in 1872. The Erewhonian society Butler envisioned had long ago undergone a revolution that destroyed most mechanical inventions. The narrator of the story finds a book that details the reasons for this revolution, which he translates for the reader. Despite the initial popularity of Erewhon, Butler commented in the preface to the second edition that reviewers had "in some cases been inclined to treat the chapters on Machines as an attempt to reduce Mr. Darwin's theory to an absurdity." He protested that "few things would be more distasteful to me than any attempt to laugh at Mr. Darwin", but also added "I am surprised, however, that the book at which such an example of the specious misuse of analogy would seem most naturally levelled should have occurred to no reviewer; neither shall I mention the name of the book here, though I should fancy that the hint given will suffice", which may suggest that the chapter on Machines was in fact a satire intended to illustrate the "specious misuse of analogy", even if the target was not Darwin; Butler, fearing that he had offended Darwin, wrote him a letter explaining that the actual target was Joseph Butler's 1736 The Analogy of Religion, Natural and Revealed, to the Constitution and Course of Nature. The Victorian scholar Herbert Sussman has suggested that although Butler's exploration of machine evolution was intended to be whimsical, he may also have been genuinely interested in the notion that living organisms are a type of mechanism and was exploring this notion with his writings on machines, while the philosopher Louis Flaccus called it "a mixture of fun, satire, and thoughtful speculation." == Evolution of Global Intelligence == George Dyson applies Butler's original premise to the artificial life and intelligence of Alan Turing in Darwin Among the Machines: The Evolution of Global Intelligence (1998) ISBN 0-7382-0030-1, to suggest that the internet is a living, sentient being. Dyson's main claim is that the evolution of a conscious mind from today's technology is inevitable. It is not clear whether this will be a single mind or multiple minds, how smart that mind would be, and even if we will be able to communicate with it. He also clearly suggests that there are forms of intelligence on Earth that we are currently unable to understand. From the book: "What mind, if any, will become apprehensive of the great coiling of ideas now under way is not a meaningless question, but it is still too early in the game to expect an answer that is meaningful to us."
Your AI Slop Bores Me
Your AI Slop Bores Me (stylized in all lowercase) is a website and social experiment created by programmer Mihir Maroju. Serving as a parody of large language models (LLMs) like ChatGPT and Claude, all questions and image prompts posed by users are answered by other, randomly-selected human users of the site. As of March 2026, the site has reached 50 million hits and sits at 16,000 concurrent users. == Background == In an interview with Fast Company, Maroju said he was inspired to create the site by his frustration with AI proliferating the internet with AI generated content, saying the site came from "a frustration for AI art and its proliferation, making artists' lives worse and also just filling the internet with low-effort generic slop". == Overview == The site has a credit system, in which a first-time user will be given 1 credit for free. Every 10 minutes, if a user has 0 credits, they will receive 2 credits. Once the credits are used up, the user can no longer do prompts unless the user earns them. The user can earn credits by responding to other user's prompts by "larping as AI" while given a 75-second time limit. Prompts can either be for a written response, or a drawing for the other user to fulfill the prompt. The maximum amount of credits a user can have is 6 credits, and cannot exceed the maximum limit. If the prompting user activates "thinking mode", the countdown is extended to 150 seconds for the cost of 2 credits. == Reception == The site has garnered attention and praise from X users, and across many online communities. The Daily Dot's Rachel Kiley wrote that "the best part about the game is that there's really no right or wrong way to do it. Humans aren't LLMs trained on copyrighted material and the whole of the free internet, but we do retain a certain amount of the information we've learned from those things over the course of our lives, while also being capable of creativity". Chris Taylor of Mashable called the site "amateurish and charming". Aftermath's Nicole Carpenter wrote that the site reminded her of "the human touch of chaos".
Nice (app)
Nice is a photo-sharing mobile app developed by Nice App Mobile Technology Co., Ltd. (Chinese: 北京极赞科技有限公司) in China. The app allows users to tag specific locations on images, enabling detailed labeling of items such as clothing and accessories. The company received a $36 million investment in C-round funding in 2014. Nice had 30 million registered users and 12 million active users as of late 2015. As of January 2024, it remained a popular app, the 6th most-downloaded in the iOS App Store for China. == Official website == Official website
House of Suns
House of Suns is a 2008 science fiction novel by Welsh author Alastair Reynolds. The novel was shortlisted for the 2009 Arthur C. Clarke Award. == Setting == Approximately six million years in the future, humanity has spread throughout the Milky Way galaxy, which appears devoid of any other organic sentient life. The galaxy is populated by numerous civilizations of humans and posthumans of widely varying levels of development. A civilization of sentient robots known as the Machine People coexists peacefully with humanity. Technologies of the era include anti-gravity, inertia damping, force fields, stellar engineering, and stasis fields. Also of note is the "Absence"—the mysterious disappearance of the Andromeda Galaxy. Large-scale human civilizations almost invariably seem to collapse and disappear within a few millennia (a phenomenon referred to as "turnover"), the limits of sub-lightspeed travel making it too difficult to hold interstellar empires together. Consequently, the most powerful entities in the galaxy are the "Lines"—familial organizations made of cloned "shatterlings". The Lines do not inhabit planets, but instead travel through space, holding reunions after they have performed a "circuit" of the galaxy; something that takes about 200,000 years. House of Suns concerns the Gentian Line, also known as the House of Flowers, composed of Abigail Gentian and her 999 clones (or "shatterlings"), male and female: exactly which of the 1,000 shatterlings is the original Abigail Gentian is unknown. The clones and Abigail travel the Milky Way Galaxy, helping young civilizations, collecting knowledge, and experiencing what the universe has to offer. Members of the Gentian Line are named after flowering plants. == Synopsis == The novel is divided into eight parts, with the first chapter of each part taking the form of a narrative flashback to Abigail Gentian's early life (six million years earlier, in the 31st century), before the cloning and the creation of the Gentian Line. Each subsequent chapter is narrated from the first-person perspective of two shatterlings named Campion and Purslane, alternating between them each chapter. Campion and Purslane are in a relationship, which is frowned upon, even punishable, by the Line. The primary storyline begins as Campion and Purslane are roughly fifty years late to the 32nd Gentian reunion. They take a detour to contact a posthuman known as ‘Ateshga’ in hopes of getting a replacement ship for Campion because his is getting old (several million years old). After being tricked by Ateshga, Campion and Purslane manage to turn the tables on him and leave his planet with a being he had been keeping captive, a golden robot called Hesperus. Hesperus is a member of the "Machine People", an advanced civilization of robots, and supposedly the only non-human sentient society in existence. The two shatterlings hope that the rescue of Hesperus will let them off the hook for their lateness, as returning him to his people (who will be at the reunion as guests of other shatterlings) will put the Gentian Line on good terms with the Machine People. However, before reaching the reunion world, Campion and Purslane encounter an emergency distress signal from Fescue, another Gentian shatterling. There was a vicious attack on the reunion world; an ambush in which the majority of the Gentian Line was wiped out. The identity of the responsible party is unknown, but the attackers used the supposedly long-vanished 'Homunculus' weapons – monstrous spacetime-bending weapons that were created ages ago, but were ordered to be destroyed by another Line. Despite Fescue's warning, Campion and Purslane approach the reunion system to look for survivors. They manage to find the remains of a ship with several Gentian members still alive, and rescue them and the four enemy prisoners they had captured. Hesperus, however, is gravely injured in the process by remaining ambushers. The group escapes and make their way to the Gentian backup meeting planet, Neume, in the hope of re-grouping with any other Gentians who may have survived the ambush. Upon reaching Neume, Campion, Purslane and the other shatterlings they rescued are greeted by the few Gentian survivors of the ambush (numbering only in the forties, compared to the hundreds that existed before the ambush). They also meet two members of the Machine People: Cadence and Cascade, guests of another shatterling. During the next few days, the interrogation of the prisoners commences. Another Gentian, Cyphel, is mysteriously murdered, which fuels the Line's concerns that there is a traitor among them. As a way of punishing Campion for transgressions against the Line, Purslane is made to give up her ship, the Silver Wings of Morning (one of the fastest and most powerful in the Line) to Cadence and Cascade, ostensibly so they can return to the Machine People with news of the ambush, in a bid to gain the Line some assistance. Hesperus, still critically wounded following the rescue of the survivors, is taken to the Neumean "Spirit of the Air", an ancient posthuman machine-intelligence, in the hopes that it will fix him. The Spirit takes Hesperus away and returns him some time later, though apparently still not functioning. The robots Cadence and Cascade make preparations to leave on Purslane's ship. They agree to take him aboard and return him to their people, who they promise may be able to help Hesperus. Purslane accompanies them to her ship, where she must be physically present to give the ship order to transfer control over to the robots. On their way to the bridge, Hesperus suddenly springs to life, grabbing Purslane and hiding her while Cadence and Cascade are whisked along to the bridge. Hersperus quickly explains that Cadence and Cascade are actually planning on hijacking the ship. Bewildered by this sudden change of events, Purslane delays in acting, not sure if she should trust Hesperus, before deciding to ask the ship to detain and eject the robots in the bridge. By then, though, it is too late. Cadence and Cascade hack into the ship's computer, taking it over, and take off from Neume with Hesperus and Purslane still aboard. Campion and several other shatterlings immediately launch a pursuit. Together Hesperus and Purslane find a hideout in a smaller ship in the hold of the Silver Wings of Morning. Using information gained from the other two robots and his own memories, Hesperus (who is now an amalgamation of both Hesperus and the Spirit of the Air) has pieced together what is going on: Cadence and Cascade have discovered that the Line was involved in the accidental extermination of a forgotten earlier race of machine people, dubbed the "First Machines". The Commonality (a confederation of the various Lines), horrified and ashamed of this pointless genocide, erased all knowledge of the event from historical records and their own memories. Unfortunately, Campion, in a previous circuit, unwittingly uncovered information pertaining to the extermination. Hesperus believes that the ambush at the reunion was seeking to destroy this evidence before it could spread, carried out by a shadow Line known as the "House of Suns", tasked with maintaining the conspiracy. Cadence and Cascade, on the other hand, are racing for a wormhole which leads to the Andromeda Galaxy, to where the few survivors of the First Machines are revealed to have retreated. They plan to release the First Machines back into the Milky Way, thus effecting a revenge against the Commonality for the genocide. As Campion and the shatterlings are pursuing Purslane's hijacked ship, transmissions from Neume confirm that a shatterling within their midst, Galingale, is the traitor and a secret member of the House of Suns. The shatterlings open fire on both Galingale's and Purslane's ships, and while they manage to capture Galingale, they are unable to stop Purslane's ship. Unable to get within weapons range, Campion pursues Purslane's ship for sixty thousand light years, during which time he and Purslane, on their separate ships, are suspended in "abeyance", a form of temporal slowdown or stasis. Despite efforts to stop the hijacked ship from reaching the concealed wormhole by local civilisations, the robot Cascade succeeds in opening the "stardam" enclosing the wormhole and travelling through it to the Andromeda Galaxy. On board Silver Wings of Morning, Hesperus reveals to Campion that while he managed to destroy Cadence before they could leave the Neume star system, Cascade survived and he and Cascade had engaged in a marathon battle, several thousand years. Hesperus was ultimately victorious, but Cascade has fused the ship controls before his defeat and they are past the point of no return. Campion, now the only shatterling still in pursuit, enters the wormhole after them and emerges in the Andromeda Galaxy, a place apparently devoid of all sentient life. In his search for Purslane and her ship, he travels to a star enca